我想将A列中的项添加到combobox1中,然后根据combobox1值将B列中的项添加到combobox2中。
A B
1 a ddd
2 a fgh
3 a jcv
4 b ggh
5 b ggg
6 b fff
7 b hhh
例如
如果我选择" b"在combobox1中然后这些字符串应该添加到combobox2:ggh,ggg,fff和hhh
我的代码不起作用。提前谢谢。
Private Sub ComboBox1_Change()
With Sheet3.ComboBox1
For Each Cell In Range("A1:A7")
.AddItem Cell.Value
Next
End With
Dim index As Integer
index = ComboBox1.value
Call combo2
End Sub
Private Sub combo2()
For Each Cell In Range("A1:A7")
Select Case index
Case Is = a
With ComboBox2
.AddItem "offset(cell.address,1,1,1,0)"
End With
Case Is = b
With ComboBox2
.AddItem "offset(cell.address,1,1,1,0)"
End With
End Select
Next
End Sub
答案 0 :(得分:1)
你的代码看起来很像你的问题。我只能指出一些错误。
以下是您需要纠正的内容:
Index
声明为公开,以便其他子可以访问它。在第一个事件子项之外,添加第Public Index As String
行。case "a"
而不是case Is = a
的案例选择。 Is
运算符用于比较对象引用,同时,您正在处理简单的数据类型比较。case "a"
和case "b"
说明中,在with
语句中,使用For Each
语句循环显示值范围“B”。它看起来像下面的代码示例中的内容。例如,如果我在combobox1中选择“b”,那么这些字符串应该是 添加到combobox2:ggh,ggg,fff和hhh
但是,你用第A列中的值填充你的第一个comobox,我只能假设你想说B,否则,你的选择案例陈述将无效。
代码示例:
For Each Cell in Range("B1:B7")
If Cell.Value = "a" Then
.AddItem Cell.Offset(0,1).Value
End If
Next