Excel:如果组合框 1 为空,则将组合框 3-8 .visible 设置为 false
Excel: Set comboboxes 3-8 .visible to false if ComboBox 1 is empty
我有一个带有组合框 1-8 的用户窗体,每个组合框都在 UserForm_Activate 上的 ws 中的指定单元格中选取文本。如果 ComboBox1.Value = "",我已将 ComboBoxes 2-8 设置为 .Visible=False
。
有没有一种方法可以使用缩写代码为每个 ComboBox 设置 .Visible=False
而无需单独列出每个 ComboBox?我在下面添加了我现在正在使用的内容,但我经常创建这样的表单并且宁愿使用 "Dim i as Integer / 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
我有一个带有组合框 1-8 的用户窗体,每个组合框都在 UserForm_Activate 上的 ws 中的指定单元格中选取文本。如果 ComboBox1.Value = "",我已将 ComboBoxes 2-8 设置为 .Visible=False
。
有没有一种方法可以使用缩写代码为每个 ComboBox 设置 .Visible=False
而无需单独列出每个 ComboBox?我在下面添加了我现在正在使用的内容,但我经常创建这样的表单并且宁愿使用 "Dim i as Integer / 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