Excel VBA:命名范围+字符串值作为验证列表?

时间:2011-06-09 22:48:52

标签: excel list vba range validation

好的,基本上我想要做的是为特定单元格设置数据验证列表。 此列表应包含我指定的特定范围的单元格,并添加一个字符串值。 我有一个对话框,要求用户输入一个名称,然后我需要显示的列表包含一组设置的单元格,其中包含“Other:”&添加了名称。

name = "Test"
With Worksheets("Tijdsregistratie").Cells(aangepasteRij, 4).Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="=nameRange, name"
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True
End With

类似于上面的代码(显然公式不起作用)。 有没有办法使用特定的公式来做到这一点,或者我将不得不找到另一种方法来完成这项工作?

1 个答案:

答案 0 :(得分:0)

数据验证不接受“范围联合”(例如"=nameRange, name""=$I$4:$I$9;$A$21"将是无效输入),但是当您更新对话框时,您可以创建一个新范围包括“其他”和名称并对此新范围进行验证,或者只在验证范围的末尾附加对话框的结果。

检查网络I设备这个快速破解(以下示例)

Formula1:=Range("I4").Value & "," & Range("I5").Value & ",a,b"

正如您所看到的,Formula1以“option1,option2,option3”格式接受字符串输入,因此这很容易:使用您的验证范围构建一个字符串,并从对话框中追加您的数据。