我只是尝试向单元格添加列表验证,我得到运行时错误1004应用程序定义或对象定义错误。我有这个确切的代码验证我的工作簿中的其他位置的单元格,它从来没有出现过问题。
With Range("Q3").Validation
.Delete
.Add _
Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Formula1:="=Constants!Q6:Q30"
End With
我也尝试过为Formula1使用字符串“Alice,Bob”,我得到了同样的错误,所以这不是问题。实际上,我只是在尝试设置此特定工作表上的任何类型的验证(例如xlValidateWholeNumber的相同错误)时才会看到此错误。
某些可能相关或不相关的信息:
答案 0 :(得分:0)
我意识到这是一个古老的问题,但它仍然表现得非常出色。
根据我的经验,您无法将数据验证设置为存储在另一个工作表中的范围。 除了一个例外:如果你" name"那范围。
我的解决方法就是选择我需要用作参考的范围,给它一个定义的名称(至少在Excel 2010中:公式选项卡>名称管理器>定义名称>按照提示输出[]或者只是在公式栏旁边的框中键入一个名称,你在下面的图片中看到B2],然后在我的代码中使用该命名范围。
在您的情况下,假设您的命名范围是" NamedRange01",您的代码将是:
With Range("Q3").Validation
.Delete
.Add _
Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Formula1:="=NamedRange01"
End With