繁体   English   中英

VBA运行时错误1004-object_Global的范围失败-IF公式

[英]VBA Run Time Error 1004 - Range of object_Global failed - IF Formula

我已将以下公式插入VBA,但出现VBA运行时错误1004-“ object_Global的范围失败”-不知道我缺少什么。

公式在Excel中有效,但当我转换为VBA时无效。

Range("AF") ="=IF(OR(AND(LEN('ACCOUNT DATA'!V2)=8,LEFT('ACCOUNT DATA'!V2,2)=""60""),LEFT('ACCOUNT DATA'!V2,3)=""CSN""),""CDR Created"",IF(OR(AND(LEN('ACCOUNT DATA'!X2)=8,LEFT('ACCOUNT DATA'!X2,2)=""60""),LEFT('ACCOUNT DATA'!X2,3)=""CSN""),""CDR Created"",IF(OR(AND(LEN('ACCOUNT DATA'!Y2)=8,LEFT('ACCOUNT DATA'!Y2,2)=""60""),LEFT('ACCOUNT DATA'!Y2,3)=""CSN""),""CDR Created"",""CDR Pending"")))"

更正公式:我错过了我范围内的行号...所以AF2代替了AF:

Range("AF2") ="=IF(OR(AND(LEN('ACCOUNT DATA'!V2)=8,LEFT('ACCOUNT DATA'!V2,2)=""60""),LEFT('ACCOUNT DATA'!V2,3)=""CSN""),""CDR Created"",IF(OR(AND(LEN('ACCOUNT DATA'!X2)=8,LEFT('ACCOUNT DATA'!X2,2)=""60""),LEFT('ACCOUNT DATA'!X2,3)=""CSN""),""CDR Created"",IF(OR(AND(LEN('ACCOUNT DATA'!Y2)=8,LEFT('ACCOUNT DATA'!Y2,2)=""60""),LEFT('ACCOUNT DATA'!Y2,3)=""CSN""),""CDR Created"",""CDR Pending"")))"

该错误通常意味着您隐式地在不应该引用的地方引用了活动工作表,例如:

Sheet2.Activate
Sheet1.Range(Cells(1,1), Cells(2,2)) = 42 'boom: "Cells" is referring to Sheet2

在这里,您得到它是因为Range("AF")对Excel的意义不大。 尝试以下方法:

[ActiveSheet.]Range("AF:AF").Formula = "..."

不过,您可能想要计算实际的行,因为这会将公式放在列AF的每一行上 ,我怀疑这是您真正想要的。

请注意,您应该使用适当的Worksheet对象对Range调用进行限定,并且由于要分配公式 ,因此您应该明确地说Rangedefault属性指向其value ,因此您利用了很多隐式行为为使该代码起作用:最好使尽可能明确

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM