excel vba中的字符串出现奇怪的运行时1004错误

时间:2013-09-02 13:25:51

标签: string excel vba

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

这很好用:

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

这很好用:

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

但这会导致“运行时错误'1004'而它不应该。我会为此疯狂!

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

我错过了一些明显的东西......?

非常感谢!

2 个答案:

答案 0 :(得分:0)

是的,你是。 : - )

你编码

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

它等于

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

你不能在Excel中制作不完整的公式。如果你只想写字符串“= VLOOKUP(”你可以这样做:

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

[与'之前的一切]

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

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

答案 1 :(得分:0)

必须涉及某种程度的“保护”:

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

会抛出“1004”,但是:

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

不会。

这类似于如果您尝试手动输入错误的公式,工作表的响应方式。