Excel VBA基于另一个组合框将列的值添加到组合框中
我想将A列中的项目添加到combobox1,然后根据combobox1值将B列中的项目添加到Combox2Excel VBA基于另一个组合框将列的值添加到组合框中,excel,vba,Excel,Vba,我想将A列中的项目添加到combobox1,然后根据combobox1值将B列中的项目添加到Combox2 A B 1 a ddd 2 a fgh 3 a jcv 4 b ggh 5 b ggg 6 b fff 7 b hhh 例如 如果我在combobox1中选择“b”,那么这些字符串应该添加到Combox2中:ggh、ggg、fff和hhh 我的代码不起作用。先谢谢你 Private Sub ComboBox1_Change() With Sheet3
A B
1 a ddd
2 a fgh
3 a jcv
4 b ggh
5 b ggg
6 b fff
7 b hhh
例如如果我在combobox1中选择“b”,那么这些字符串应该添加到Combox2中: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
你的代码看起来真的很混乱,就像你的问题一样。我只能试着指出一些错误 以下是您需要更正的内容:
索引
声明为公共,以便其他子系统可以访问它。在第一个子事件之外,将行公共索引添加为字符串
case“a”
,而不是case Is=a
。Is
操作符用于比较对象引用,同时,您正在处理一个简单的数据类型比较案例“a”
和案例“b”
说明中,在您的with
语句中,对每个语句使用,在值的范围“b”中循环。它看起来像下面的代码示例
For Each Cell in Range("B1:B7")
If Cell.Value = "a" Then
.AddItem Cell.Offset(0,1).Value
End If
Next
谢谢你的回复。我想在第一个组合框中填入A列,在第二个组合框中填入B列。请查看相关表格。这证实了我在回答中的暂停。你很容易把我的话融入你的代码中。