在Excel VBA中搜索引号

时间:2017-05-05 08:53:58

标签: excel vba excel-vba

我有一个我在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)生成一个引号,但这不起作用。有什么解决方法吗?

2 个答案:

答案 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) & ")"