我需要动态构建一个下拉列表,在将特定文本输入单元格之后,我执行一些SQL并从返回的行中构建Dropdown
。
事件如何集中在一个单元格(而不是整个电子表格)的值上?
在创建Dropdown
之前,我必须将SQL行值“粘贴”到电子表格中吗?是否可以在VBA中填充Dropdown
而无需将值粘贴到电子表格中,然后突出显示它们以创建Dropdown
?
由于
答案 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