以编程方式将下拉列表添加到特定单元格

otu*_*tus 4 excel vba

我想知道如何使用 VBA 以编程方式将下拉列表添加到 Excel 工作表的特定单元格,例如,我希望能够向单元格 (i,j) 添加下拉列表并定义列表的元素。

Ana*_*com 5

以编程方式执行此操作:

With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="Value1;Value2;Value3"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
Run Code Online (Sandbox Code Playgroud)

Formula1列表中的值在哪里用 分隔;

更好的方法(动态命名范围)

如果您有要在下拉列表中填充的动态记录列表,请使用以下公式定义命名范围:

=OFFSET(Sheet1!$A$1;1;0;COUNTA(Sheet1!$A:$A)-1)

..假设您的数据Sheet1在第一行中带有标题:

A1  Header
A2  Value1
A2  Value2
A3  Value3
Run Code Online (Sandbox Code Playgroud)

  • 实际上不是一个错误:)。你只是和我有不同的“区域设置”。Windows 设置中的列表分隔符是逗号“,”(美国风格),我的列表分隔符是分号“;”(欧洲风格) (3认同)
  • 好的,它有效,谢谢。只是有一个小错误:值必须用 `,` 分隔 (2认同)