我有一个带有ComboBoxes 1-8的UserForm,每个UserForm在激活UserForm_Activate时都会在ws的指定单元格中提取文本。如果ComboBox1.Value =“”,我已将ComboBoxes 2-8设置为.Visible=False
。
是否有一种方法可以使用缩写代码为每个ComboBox设置.Visible=False
,而不必分别列出每个ComboBox?我在下面添加了我现在正在使用的内容,但是我经常创建这样的表单,而宁愿使用“将我作为整数/ For i =“键入东西”,而不是仅在需要的地方复制和粘贴。预先谢谢!
If ComboBox1.Value = "" Then
ComboBox2.Visible = False
ComboBox3.Visible = False
ComboBox4.Visible = False
ComboBox5.Visible = False
ComboBox6.Visible = False
ComboBox7.Visible = False
ComboBox8.Visible = False
控件的间接引用
通过Controls()
使用间接引用并尝试
Dim i As Long, current As Long
current = 1 ' << change to the combobox to be excepted
For i = 1 to 8 ' loop through all comboboxes
Me.Controls("ComboBox" & i).Visible = False
Next i
Me.Controls("ComboBox" & current).Visible = True