动态构建下拉列表?

mez*_*hic 4 excel vba excel-2007 excel-vba

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

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

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

谢谢

Sid*_*out 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
Run Code Online (Sandbox Code Playgroud)