用户窗体列表框显示范围内的值

Userform listbox to show values from a range

我正在尝试在 Excel 中创建一个用户窗体,其中我有一个 ComboBox 并基于所选的值,来自一系列单元格的值将显示在用户窗体的列表框中。

到目前为止我有这个。

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 它将 select 这个范围。

如何在用户窗体上显示此范围内的数据?

这是一种方法:

1.将一些命名范围添加到您的工作表

范围 B2:C3 已分配给名为 Name1 的命名范围。范围E2:F3分配给Name2,等等


2。使用 ComboBoxListBox

创建用户表单


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 子和 select 一个名字!