使用基于用户表单上的组合框选择的范围填充列表框

时间:2015-09-24 13:56:40

标签: excel vba

从组合框下拉列表中选择一个选项后,我希望列表框根据该选择显示指定范围的结果。

我的理解是,在使用正确的值和属性之前,简单的If / Then语句就足够了。

我有一张带有两列的工作表(Sheet1)。

A栏名为"字母"和B列命名为"数字。
  - 在A列范围内A2 = A,A3 = B,A4 = C,A5 = D.   - 在B列范围内B2 = 1,B3 = 2,B4 = 3,B5 = 4。

我想在combobox1中选择范围A2以在listbox1中显示范围B2。

我想使用并理解最简单的方法。

以下是使用此思维过程的非工作示例。

Private Sub ComboBox1_Change()
    If Me.ComboBox1.Value = "A" Then
        ListBox1.Value = Range(Sheet1!B2)
    End If        
End Sub

4 个答案:

答案 0 :(得分:0)

我不确定您是否希望组合框的A列填充是动态的?作为快速演示...

在设计模式中,右键单击组合框>属性>其他>然后将ListFillRange设置为A2:A5。这将使组合框中包含该范围的数据。双击组合框以访问代码屏幕。根据您自己的控件名称调整以下逻辑:

Private Sub ComboBox1_Change()
  If ComboBox1.Value = "A" Then
     ListBox1.AddItem ActiveSheet.Range("b2")
  End If
End Sub

答案 1 :(得分:0)

A => 1

B => 2

ComboBox1.ListIndex将为您提供所选的项目索引(基础0)

所以我们可以写成

ListBox1.Value =范围(“B”&(ComboBox1.ListIndex + 2))。值

答案 2 :(得分:0)

我不太确定你想要什么,但鉴于你的userform包含一个名为Combobox1的ComboBox和一个名为Listbox1的ListBox:

Private Sub ComboBox1_Change()
    Dim r As Range
    Set r = [Sheet1!B2]
    ListBox1.Clear
    ListBox1.AddItem r.Offset(ComboBox1.ListIndex).Value
End Sub

Private Sub UserForm_Initialize()
    Dim r As Range
    Set r = [Sheet1!A2:A5]
    ComboBox1.List = r.Value
End Sub

如果列B包含范围而不是数字,则可以通过重新添加来添加另一个间接级别:

ListBox1.Clear
ListBox1.AddItem r.Offset(ComboBox1.ListIndex).Value

通过

ListBox1.List = Range(r.Offset(ComboBox1.ListIndex).Value).Value

答案 3 :(得分:0)

我所遵循的过程总结如下。 UserForm Initialise ComboBox和ListBox以及Worksheet引用之间的例程集关系。虽然我已经将接触地址列表的更一般情况进行了一般化,但这对许多人来说可能是有用的。

Private Sub UserForm_Initialize()
    Set rData = ActiveSheet.Range("A1").CurrentRegion
    Me.ComboBox1.List = rData.Offset(1).Value
    Me.ListBox1.ColumnCount = 6
    Me.ListBox1.List = Me.ComboBox1.List
End Sub

ComboBox Change Routine有以下代码。

Private Sub ComboBox1_Change()
  Me.ListBox1.ListIndex = Me.ComboBox1.ListIndex
End Sub

有一个关闭按钮可以关闭表单。

Private Sub cmdClose_Click()     卸下我     结束子

一般声明如下。

Option Explicit
Dim rData As Range

下面附有Cotact地址目录的图像。

[![Contact address directory][1]][1]

enter image description here

示例文件可以从这里下载https://www.dropbox.com/s/w5rnp8omkl5u0eu/sample_2409c.xlsm?dl=0