我有一个宏,它会在一个更改事件上添加验证。在名称管理器中,我有一个表,它是“Table1”,我将其更改为“tblBrand”。这行代码应该从该表创建一个列表,但它抛出了错误1004。
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertInformation, Operator:=xlBetween, Formula1:="=tblBrand"
奇怪的是,我以前使用过名称框,并将此表命名为“shtblBrand”,这样做效果很好。但在名称管理器中,我基本上将每个表命名了两次。因此,此表在名称管理器中命名为Table1和shtblBrand。为了提高效率,我删除了shtblBrand,并将Table1重命名为tblBrand。这时,它停止工作并抛出错误1004。
1条答案
按热度按时间ozxc1zmp1#
不应在公式中输入
=
符号,更正代码为:事实上你应该。好的,我做了进一步的实验。不知何故,Table不是普通的Name。如果你在Names窗口中查看它们,它们有一个不同的图标,并且它们不在
ThisWorkbook.Names
中枚举。结果,它们不允许在Formula1中使用。您应该创建一个具有相同范围的新名称,或者创建一个新名称,例如引用表
=tblBrand
的tblBrandIndirect
(可以通过VBA,但通过“名称”窗口更容易),并在Formula1
中使用该名称:这样,您既可以将其用作表,也可以将其用作普通名称,而无需更新其地址。