我尝试在Excel中创建一个Userform,我有一个ComboBox并根据所选的值,一系列单元格中的值将显示在Userform的列表框中。
到目前为止,我有这个。
Private Sub UserForm_Initialize()
With ComboBox1()
.AddItem "Item1"
.AddItem "Item2"
.AddItem "Item3"
.AddItem "Item4"
.AddItem "Item5"
.AddItem "Item6"
.AddItem "Item7"
End With
End Sub
Sub ComboBox1_Change()
If ComboBox1.ListIndex = Outlook Then
Range("A3:B11").Show
Else
If ComboBox1.ListIndex = NoNetwork Then
Range("C3:D11").Show
End If
End If
End Sub
如果我将Range("A3:B11").Show
更改为Range("A3:B11").Select
,则会选择此范围。
如何在UserForm上显示此范围内的数据?
答案 0 :(得分:1)
这是一种方法:
<强> 1。在工作表中添加一些命名范围
范围B2:C3
已分配给名为Name1
的命名范围。分配给E2:F3
等的范围Name2
<强> 2。使用ComboBox
和ListBox
第3。将以下代码放在相关模块中:
Userform1模块
Private Sub UserForm_Initialize()
ComboBox1.List = Array("Name1", "Name2", "Name3", "Name4")
End Sub
Private Sub ComboBox1_Change()
Dim n As Name
Set n = ThisWorkbook.Names(ComboBox1.Value)
If Not n Is Nothing Then
ListBox1.RowSource = n.RefersToRange.Address
ListBox1.ColumnCount = n.RefersToRange.Columns.Count
End If
End Sub
任何标准模块
Public Sub ShowUserform()
With New UserForm1
.Show vbModal
End With
End Sub
<强> 4。从标准模块运行ShowUserform
子,然后选择一个名称!