Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA:命名范围+;字符串值作为验证列表?_Excel_List_Vba_Range_Validation - Fatal编程技术网

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

Excel VBA:命名范围+;字符串值作为验证列表?,excel,list,vba,range,validation,Excel,List,Vba,Range,Validation,好的,基本上我想做的是为一个特定的单元格设置一个数据验证列表。 此列表应包含我指定的特定范围的单元格以及添加到其中的字符串值。 我有一个对话框,要求用户输入一个名称,然后我需要显示包含一组单元格的列表,其中添加了“Other:”&name name = "Test" With Worksheets("Tijdsregistratie").Cells(aangepasteRij, 4).Validation .Delete .Add Type:=xlValidateList, Al

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

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
类似于上面的代码(显然公式不起作用)。
是否有任何方法可以使用特定的公式来实现这一点,或者我必须找到另一种方法来实现这一点?

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

通过此快速破解检查web I设备(下面的示例)


正如您可以看到的那样,Formula1接受格式为“option1,option2,option3”的字符串输入,所以这很简单:使用您的验证范围构建一个字符串,并从对话框中附加您的数据。

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

通过此快速破解检查web I设备(下面的示例)

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

这可能会有所帮助:这可能会有所帮助:
Formula1:=Range("I4").Value & "," & Range("I5").Value & ",a,b"