以编程方式创建Excel VBA验证列表

时间:2010-12-21 09:36:13

标签: validation excel-vba vba excel

我有一组数据从外部源进入VBA代码。我希望能够将此数据分配用作此工作簿中某个工作表中单元格的下拉框中的验证。但是,我不想将这些数据复制到工作表中,然后使用命名范围 - 可能会有相当多的数据,而且感觉效率不高!

我确定必须有办法 - 但我还没找到。有什么想法吗?

2 个答案:

答案 0 :(得分:4)

  1. 将数据放在一些文本文件中,用逗号分隔,例如(a,b,c)。

  2. 使用VBA将该数据读入字符串变量,例如ValidationList。

  3. 使用像这样的东西

    使用范围(“A1”)。验证
     .Add Type:= xlValidateList,AlertStyle:= xlValidAlertStop,Operator:= _

     xlBetween,Formula1:= ValidationList
     .IgnoreBlank = True
     .InCellDropdown = True
     .InputTitle =“”
     .ErrorTitle =“”
     .InputMessage =“”
     .ErrorMessage =“”
     .ShowInput = True
     .ShowError = True

    结束

答案 1 :(得分:0)

这是我使用的一个小技巧,在这个“列表”中是一个ArrayList:

Dim ValidateList As String
For Each x In list
ValidateList = ValidateList + x + Chr(44)
Next
 With Sheets(yoursheet).Range(yourCell).Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
     xlBetween, Formula1:=ValidateList
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True
End With

可能看起来有点粗糙,但我认为它没有任何问题:)