当前位置: 首页 > 知识库问答 >
问题:

如何用VBA在Excel中创建多个依赖项下拉列表

林泰平
2023-03-14

我需要两个依赖的下拉列表。在VBA中,我尝试为单个列表创建下拉列表,但我无法使其依赖。下拉列表如下所示

第一个下拉列表的内容

dd1
dd2

dd4
dd5
dd6

对应的清单2是

对于dd1

ddd1
ddd2
ddd3

对于dd2

ddd4

ddd6

就像怀斯。

我已经用完了代码

With Range("D1").Validation
                .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                xlBetween, Formula1:=TempList
                .IgnoreBlank = True
                .InCellDropdown = True
                .InputTitle = ""
                .ErrorTitle = ""
                .InputMessage = ""
                .ErrorMessage = ""
                .ShowInput = True
                .ShowError = True
            End With
        End If

列表中不能有任何空格/空单元格。

我也试过这个

https://siddharthrot.wordpress.com/2011/07/29/excel-data-validationcreate-dynamic-dependent-lists-vba/

但是上面的代码支持单个单元格下拉。我需要整个单元格列作为下拉。

或者是否有任何方法可以使用公式直接创建依赖的下拉列表,并消除两列中的空白单元格。

提前致谢

共有1个答案

赵雅懿
2023-03-14

您必须将这些值的关系存储在某个地方。然后,当其中一个被选中时,填充另一个。下面是一个示例,如果值存储在A和B列中。

A   B
--- ----
dd1 ddd1
dd1 ddd2
dd1 ddd3
dd2 ddd4
dd2 ddd6

在第一个列表的更改事件中,根据在第一个列表中选择的内容,查找要在第二个列表中放置的内容。

Private Sub ComboBox1_Change()
Dim lRow As Long

'Clear out the second list
ComboBox2.Clear

lRow = 1
Do While lRow <= ws.UsedRange.Rows.Count

    If ws.Range("A" & lRow).Value = ComboBox1.Text Then
        'Column A matches what was selected in the first list so add the value in columnB to the second list.
        ComboBox2.AddItem ws.Range("B" & lRow).Value
    End If

lRow = lRow + 1
Loop

End Sub

如果数据存储在其他地方,如数据库,

Private Sub ComboBox1_Change()
Dim strSQL as string

    'Clear out the second list
    ComboBox2.Clear

    strSQL = "Select fieldname2 from tablename where fieldname1 = '" & ComboBox1.Text & "'"

    'Put the results of the query into combobox2

End sub
 类似资料:
  • 我的方法我尝试使用名称范围为我的2列。然后转到下一个工作表并创建2列(CountryInput,CitiesInput)。在名为CountryInput的专栏中,我进入数据验证工具以创建第一个下拉列表。CitiesInput列应该依赖于CountryInput是我遇到的问题。我尝试使用indirect=a2函数,但没有任何结果。 我也可以使用vba或宏来做这件事吗?

  • 我期待城市列表中的城市名单基于代码的输入。 请求你的协助。

  • Im使用VBA代码创建多个选择下拉列表。该代码将使目标单元格中的每个下拉列表变成多重选择列表,函数为: 目标单元格中下拉列表的来源是,b14是另一个下拉列表(单选)。现在,如果b14的值将变成list1,我想让目标的单元格列表变成多个选择列表。在任何其他情况下,我希望它工作在正常的excel方式。我尝试用来precaphy列表源,但是我得到了的不匹配错误。我怎么做?

  • 嗨Stackoverflow社区, 如果满足条件,我想添加一个数据验证下拉列表。 如果“最终侦察”出现在C列中,则以以下状态填充下拉列表:“最终”或“正在审查”,否则不要填充下拉列表。 我可以使用非VBA验证列表,但在这种类型的评估审查中,我需要使用VBA版本。 这就是我到目前为止所拥有的,我被困得很厉害。我在C栏有“最终侦察”,如果最终侦察出现在C栏,然后用“最终”和“正在审查”的选项填充下拉列

  • 我正在android studio中使用java创建一个电子商务应用程序。我想创建一个多选下拉列表,用户可以从中选择一个或多个尺寸。我想填写包含MySQL数据库中所有大小的下拉列表。有谁能告诉我怎么做,或者给我建议一些教程,因为我现在还没有得到。

  • 我正在尝试为Android Studio中的一个活动创建一个下拉列表。我试过用旋转器。 下面是我的xml代码: 下面是我的Java代码: 有没有人知道我该怎么做?