excel vba中string奇怪的运行时错误1004

我有一个奇怪的问题,试图写出这个非常简单的VBA方法

这工作正常:

ThisWorkbook.Sheets("Analyse").Cells(i, 2) = "=HiGuys" 

这工作正常:

 ThisWorkbook.Sheets("Analyse").Cells(i, 2) = "=VLOOKUP" 

但是,这会得到一个“运行时错误1004”,而不应该这样做。

 ThisWorkbook.Sheets("Analyse").Cells(i, 2) = "=VLOOKUP(" 

我在这里错过了一些明显的东西…?

非常感谢 !

是的,你是。 🙂

你编码

 ThisWorkbook.Sheets("Analyse").Cells(i, 2) = "=VLOOKUP(" 

它是平等的

 ThisWorkbook.Sheets("Analyse").Cells(i, 2).Formula = "=VLOOKUP(" 

而且你不能在Excel中制作一个不完整的公式。 如果你想写的只是string“= VLOOKUP(”你可以这样做:

 ThisWorkbook.Sheets("Analyse").Cells(i, 2) = "'=VLOOKUP(" 

[与一切之前]

如果你想要一个真正的公式,你需要完成它,如

 ThisWorkbook.Sheets("Analyse").Cells(i, 2).Formula = "=VLOOKUP(A1,A:C,2,False)" 

必须有一定程度的“保护”

 Sub asdf() ActiveCell.Value = "=VLOOKUP(" End Sub 

会抛出一个“1004”,但是:

 Sub asdf2() ActiveCell.Value = "=VLOOKUP" End Sub 

将不会。

这与您尝试手动input错误公式时工作表的响应方式类似。