Vlookup在Excel表中工作,但在VBA中显示错误

'Worksheets("Sheet1").Range("B2:B" & lastrow).Formula = "=IF(ISNA(VLOOKUP($A19,Sheet2!$A$2:$BA$26,MATCH("New Ratio number",Sheet2!$1:$1,0),FALSE)),VLOOKUP($A19,Sheet3!$A$1:$AH$465,MATCH("Coverage (Number)",Sheet3!$1:$1,0),FALSE),VLOOKUP($A19,Sheet2!$A$2:$BA$26,MATCH("New Ratio number",Sheet2!$1:$1,0),FALSE))" 

Coverage(Number)和New Ratio Number是列名(我怀疑列名是一个问题)。当我插入一个单元格时,Vlookup正在工作,但是它在VBA中显示一个语法错误。 我也检查了其他的工作方式,这意味着在代码中没有问题或者其他任何陈述。 任何人都可以指出这个问题吗? 谢谢

加倍你的双引号string。

 Worksheets("Sheet1").Range("B2:B" & lastrow).Formula = "=IF(ISNA(VLOOKUP($A19,Sheet2!$A$2:" & _ "$BA$26,MATCH(""New Ratio number"",Sheet2!$1:$1,0),FALSE)),VLOOKUP($A19,Sheet3!$A$1:" & _ "$AH$465,MATCH(""Coverage (Number)"",Sheet3!$1:$1,0),FALSE),VLOOKUP($A19,Sheet2!$A$2:" & _ "$BA$26,MATCH(""New Ratio number"",Sheet2!$1:$1,0),FALSE))" 

你必须用一个额外的双引号来避免你的双引号:

 Worksheets("Sheet1").Range("B2:B" & lastrow).Formula = "=IF(ISNA(VLOOKUP($A19,Sheet2!$A$2:$BA$26,MATCH(""New Ratio number"",Sheet2!$1:$1,0),FALSE)),VLOOKUP($A19,Sheet3!$A$1:$AH$465,MATCH(""Coverage (Number)"",Sheet3!$1:$1,0),FALSE),VLOOKUP($A19,Sheet2!$A$2:$BA$26,MATCH(""New Ratio number"",Sheet2!$1:$1,0),FALSE))"