1

我在尝试写出这个非常简单的 vba 方法时遇到了一个奇怪的问题

这很好用:

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

这很好用:

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

但这会得到一个“运行时错误'1004',而它不应该。我要疯了!

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

我在这里错过了什么明显的东西......?

多谢 !

4

2 回答 2

0

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

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

将抛出“1004”,但是:

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

将不会。

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

于 2013-09-02T14:41:29.133 回答
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)"
于 2013-09-02T13:41:46.960 回答