【问题标题】:Getting around quotes inside Excel VBA在 Excel VBA 中绕过引号
【发布时间】:2017-05-05 17:07:00
【问题描述】:

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

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    随便用

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

    【讨论】:

      【解决方案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"")"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-04-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多