我有一个我在VBA中使用的Excel公式。但是,当我编译它时,VBA会抛出一个错误。
我确定这是因为我的公式中的引号。
Range("E2:E" & lastRow).FormulaLocal = "=IFERROR(IF(VLOOKUP(D2,$B:$B,1,FALSE)=D2,"Form Present"),"Not Present")"
这就是我试图解决的问题,
Range("E2:E" & lastRow).FormulaLocal = "=IFERROR(IF(VLOOKUP(D2,$B:$B,1,FALSE)=D2,&Chr(34)&Form Present&Chr(34)&),&Chr(34)&Not Present&Chr(34)&)"
我使用chr(34)生成一个引号,但这不起作用。有什么解决方法吗?
答案 0 :(得分:2)
只需加倍引号并将其更改为:
Range("E2:E" & lastRow).FormulaLocal "=IFERROR(IF(VLOOKUP(D2,$B:$B,1,FALSE)=D2,""Form Present""),""Not Present"")"
这会失败"=IF(1=1,"Y","N")"
,而这会有效"=IF(1=1,""Y"",""N"")"
答案 1 :(得分:2)
使用
Range("E2:E" & lastRow).FormulaLocal = "=IFERROR(IF(VLOOKUP(D2,$B:$B,1,FALSE)=D2,""Form Present""),""Not Present"")"
或
Range("E2:E" & lastRow).FormulaLocal = "=IFERROR(IF(VLOOKUP(D2,$B:$B,1,FALSE)=D2," & Chr(34) & "Form Present" & Chr(34) & ")," & Chr(34) & "Not Present" & Chr(34) & ")"