EXCEL VBA组合框匹配
说明: 图1EXCEL VBA组合框匹配,excel,vba,combobox,Excel,Vba,Combobox,说明: 图1 根据图像1,级别1是对象,级别2是对象的类型 图2 在图2中,如您所见,我分别为级别1和级别2将它们命名为ComboBox1和Combox2 我想要实现的目标: 当用户选择ComboBox1时,它将显示一组级别1项目,如A2:XFD2中的图像所示,无空单元格 然后,根据ComboBox1中的选择,Combox2将根据Combox1中的值列出级别2,如图1所示 提前感谢将此添加到您的用户表单代码中: Private Sub UserForm_Initialize() Dim rn
根据图像1,级别1是对象,级别2是对象的类型
图2
在图2中,如您所见,我分别为
级别1
和级别2
将它们命名为ComboBox1
和Combox2
我想要实现的目标:ComboBox1
时,它将显示一组级别1
项目,如A2:XFD2
中的图像所示,无空单元格ComboBox1
中的选择,Combox2
将根据Combox1
中的值列出级别2
,如图1所示提前感谢将此添加到您的用户表单代码中:
Private Sub UserForm_Initialize()
Dim rnLevel1 As Range, rnLevel2 As Range, rnTemp As Range
Set rnLevel1 = Sheet1.Cells(2, Sheet1.UsedRange.Columns.Count)
ComboBox2.Clear 'Clear all values first
For Each rnTemp In rnLevel1
If rnTemp.Value <> "" And rnTemp.Value <> "Level 1" Then ' Add values NOT INCLUDING Level 1 to Combobox1
ComboBox1.AddItem rnTemp.Value
End If
Next
End Sub
Private Sub ComboBox1_Change()
Dim rnLevel1 As Range, rnLevel2 As Range, rnTemp As Range
Set rnLevel1 = Sheet1.Cells(2, Sheet1.UsedRange.Columns.Count).Find(ComboBox1.Value) 'Find the correct column
Set rnLevel2 = Sheet1.Range(rnLevel1.Offset(1, 0), Sheet1.Cells(Sheet1.Rows.Count, rnLevel1.Column).End(xlUp))
ComboBox2.Clear 'Clear all values first
For Each rnTemp In rnLevel2
If rnTemp.Value <> "" Then ' Add values to Combobox2
ComboBox2.AddItem rnTemp.Value
End If
Next
End Sub
Private子用户表单_Initialize()
调光rnLevel1作为范围,rnLevel2作为范围,rnTemp作为范围
设置rnLevel1=Sheet1.Cells(2,Sheet1.UsedRange.Columns.Count)
ComboBox2.Clear“首先清除所有值
对于rnLevel1中的每个rnTemp
如果rnTemp.Value“”和rnTemp.Value“级别1”,则“将不包括级别1的值添加到Combobox1
ComboBox1.AddItem rnTemp.值
如果结束
下一个
端接头
专用子组合框1_Change()
调光rnLevel1作为范围,rnLevel2作为范围,rnTemp作为范围
设置rnLevel1=Sheet1.Cells(2,Sheet1.UsedRange.Columns.Count).Find(ComboBox1.Value)'查找正确的列
设置rnLevel2=Sheet1.Range(rnLevel1.Offset(1,0),Sheet1.Cells(Sheet1.Rows.Count,rnLevel1.Column)。结束(xlUp))
ComboBox2.Clear“首先清除所有值
对于rnLevel2中的每个rnTemp
如果rnTemp.值为“”,则将值添加到Combobox2
ComboBox2.AddItem rnTemp.值
如果结束
下一个
端接头