Excel 组合框(更改事件)取决于使用VBA的单元格范围
我有一个用户表单,其中有两个名为“Combobox1”和“Combobox2”的组合框。在我的Excel工作表名称“Sheet1”中,我有A列和B列,其中有一些分组值 目标:我想将Combobox2值显示为B列值,但选择时应取决于A列值。我尝试了下面的代码,但不明白哪里出了问题 所需输出:Excel 组合框(更改事件)取决于使用VBA的单元格范围,excel,vba,userform,Excel,Vba,Userform,我有一个用户表单,其中有两个名为“Combobox1”和“Combobox2”的组合框。在我的Excel工作表名称“Sheet1”中,我有A列和B列,其中有一些分组值 目标:我想将Combobox2值显示为B列值,但选择时应取决于A列值。我尝试了下面的代码,但不明白哪里出了问题 所需输出: 您必须像在UserForm\u Initialize中那样添加项目。此外,我建议使用助手函数来迭代元素(AddItemsToComboBox): 这正是我需要的!!非常感谢你的更正。 Private Sub
您必须像在UserForm\u Initialize中那样添加项目。此外,我建议使用助手函数来迭代元素(AddItemsToComboBox):
这正是我需要的!!非常感谢你的更正。
Private Sub Combobox1_Change()
'interlink dropdown box
Dim index As Integer
index = Combobox1.ListIndex
Select Case index
Case Is = 0
With Combobox2
Me.Combobox2.Clear
Worksheets("Sheet1").Range("B11:B13").Value
End With
Case Is = 1
With Combobox2
Me.Combobox2.Clear
Worksheets("Sheet1").Range("B14:B16").Value
End With
Case Is = 2
With Combobox2
Me.Combobox2.Clear
Worksheets("Sheet1").Range("B17:B19").Value
End With
End Select
End Sub
Private Sub UserForm_Initialize()
Me.Combobox1.AddItem "1"
Me.Combobox1.AddItem "2"
Me.Combobox1.AddItem "3"
End Sub
Option Explicit
Private Sub Combobox1_Change()
Dim varCombox2Items As Variant
Select Case ComboBox1.Value
Case "1"
AddItemsToComboBox ComboBox2, Worksheets("Sheet1").Range("B11:B13").Value
Case "2"
AddItemsToComboBox ComboBox2, Worksheets("Sheet1").Range("B14:B16").Value
Case "3"
AddItemsToComboBox ComboBox2, Worksheets("Sheet1").Range("B17:B19").Value
Case Else
AddItemsToComboBox ComboBox2, Array("Ivalid Value in ComboBox1")
End Select
End Sub
Private Sub UserForm_Initialize()
AddItemsToComboBox ComboBox1, Array("1", "2", "3")
End Sub
Private Sub AddItemsToComboBox(cobTarget As MSForms.ComboBox, varItems As Variant, Optional blnClear As Boolean = True)
If blnClear Then
cobTarget.Clear
End If
Dim varItem As Variant: For Each varItem In varItems
cobTarget.AddItem CStr(varItem)
Next varItem
End Sub