Excel VBA运行时错误1004-对象范围\u全局失败-如果公式

Excel VBA运行时错误1004-对象范围\u全局失败-如果公式,excel,vba,runtime,Excel,Vba,Runtime,我已经在VBA中插入了以下公式,但是得到了VBA运行时错误1004-“对象范围\全局失败”-不确定我遗漏了什么 公式在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

我已经在VBA中插入了以下公式,但是得到了VBA运行时错误1004-“对象范围\全局失败”-不确定我遗漏了什么

公式在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(或)(和(LEN('ACCOUNT DATA'!V2)=8,LEFT('ACCOUNT DATA'!V2,2)=”60“),LEFT('ACCOUNT DATA'!V2,3)=”CSN“,”CDR Created“,”IF(或)(和(LEN('ACCOUNT DATA'!X2)=8,LEFT('ACCOUNT DATA'!X2,2)=”60“),LEFT('ACCOUNT DATA'!X2,3)=”CSN“),”CDR Created“,”IF(或(和(LEN('ACCOUNT DATA('ACCOUNT DATA'!Y2)))Y2)=8,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的每一行上,我怀疑这是您真正想要的


请注意,您应该使用适当的
工作表
对象限定
范围
调用,并且由于您要指定公式,您应该这样明确地说-
范围
的默认属性指向其值,因此您正在利用大量隐式行为使该代码工作:最好尽可能明确。

问题不在于公式本身,而在于VBA语句。您可以添加VBA语句吗?类似于
myRange.formula=“=IF(或(和(…))”
@BranislavKollár我已经更新了代码