Microsoft Lab
全部软件
Excel用户窗体(Userform)约 3 分钟

Loop through Controls 循环遍历表单控件

重点内容


适用版本

桌面版通用(Excel 365 / 2021 / 2019 等)。


打开表单

Private Sub CommandButton1_Click()
  UserForm1.Show
End Sub

Clear 按钮:清空所有复选框

Private Sub CommandButton1_Click()
  Dim contr As Control
  For Each contr In UserForm1.Controls
    If TypeName(contr) = "CheckBox" Then
      contr.Value = False
    End If
  Next
End Sub

逻辑说明

  • For Each contr In UserForm1.Controls:走过表单上所有控件,不管是文本框、按钮还是复选框
  • TypeName(contr) = "CheckBox":用 TypeName 函数判断这个控件是不是复选框类型,只处理符合条件的
  • 符合条件的就把 Value 设成 False,达到「一次清空所有复选框」的效果
📷 画面提示

表单上原本勾选了好几个复选框,点击 Clear 按钮后全部变回未勾选状态的前后对比


学完你会

常见错误

  • 没有用 TypeName 过滤,直接对所有控件设置 Value = False,结果连不该动的控件(比如文本框)也被清空或报错
  • TypeName 判断的字符串拼写错误(大小写其实不影响,但拼错字母就永远匹配不到)
  • 表单控件很多时忘记这个方法能批量处理,一个个手写重复的代码

Sources

Blog / Website:

  1. Loop through Controls
只记在你的浏览器里,换设备不会同步。