动态构建下拉列表?

时间:2012-06-13 10:06:30

标签: excel vba excel-vba excel-2007

我需要动态构建一个下拉列表,在将特定文本输入单元格之后,我执行一些SQL并从返回的行中构建Dropdown

事件如何集中在一个单元格(而不是整个电子表格)的值上?

在创建Dropdown之前,我必须将SQL行值“粘贴”到电子表格中吗?是否可以在VBA中填充Dropdown而无需将值粘贴到电子表格中,然后突出显示它们以创建Dropdown

由于

1 个答案:

答案 0 :(得分:5)

不需要在工作表中粘贴值来创建下拉列表。见这个例子

Option Explicit

Sub Sample()
    Dim dvList As String

    '~~> You can construct this list from your database
    dvList = "Option1, Option2, Option3"

    '~~> Creates the list in Sheet1, A1
    With Sheets("Sheet1").Range("A1").Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:=dvList
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
End Sub