我正在尝试在 Excel 中创建一个用户窗体,其中有一个组合框,并且根据所选值,一系列单元格中的值将显示在用户窗体上的列表框中。
到目前为止我有这个。
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
to Range("A3:B11").Select
它将选择这个范围。
如何在用户窗体上显示此范围内的数据?
这是一种方法:
1. 在工作表中添加一些命名范围
范围B2:C3
已被分配给一个名为的命名范围Name1
。范围E2:F3
分配给Name2
, etc.
2. 创建一个用户表单ComboBox
and a ListBox
3. 在相关模块中放置以下代码:
用户表单1模块
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
从标准模块中选择一个名称!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)