Userform列表框,用于显示范围中的值

时间:2018-03-07 17:23:13

标签: excel vba excel-vba excel-2010

我尝试在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上显示此范围内的数据?

1 个答案:

答案 0 :(得分:1)

这是一种方法:

<强> 1。在工作表中添加一些命名范围

enter image description here

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

<强> 2。使用ComboBoxListBox

创建用户表单

enter image description here

第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子,然后选择一个名称!

enter image description here