我需要动态地构建一个下拉列表,从而在将特定文本输入单元格之后,我将执行一些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