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

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

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

谢谢

最佳答案

不,没有必要在工作表中粘贴值以创建下拉列表。看这个例子

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

10-05 21:11
查看更多