【发布时间】:2021-06-16 20:10:44
【问题描述】:
大家早上好,
我是 VBA 的初学者,我尝试过各种各样的事情。 Atm 我正在尝试将公式放置在一行单元格中,但我遇到了问题。 我使用了一些似乎在我的公式中引起问题的变量。 我已经更改了在此站点上找到的一些内容(例如从 ActiveCell 更改为 Range 并添加 rr 和 r 变量。
但这并不能解决我收到的错误消息。 我查了这个错误,但不太明白是什么意思。
谁能告诉我是什么导致了我的代码中的问题以及错误消息的含义,以便我可以自己尝试调试它。
使用 F8,我已经确保所有变量都已正确填写。 错误来自 Range(r).Formula 行。
Sub Zoeker()
Sheets("Invoer").Select
NumRows_Gist = Range("A3", Range("A3").End(xlDown)).Rows.Count
NumRows_Vand = Range("I3", Range("I3").End(xlDown)).Rows.Count
For x = 1 To NumRows_Vand
Dim r As String
rr = Range("O" & 2 + x).Row
r = "O" & Range("O" & 2 + x).Row
Range(r).Formula = "=IF(IF(IFERROR(VLOOKUP(I" & rr & ";$A$3:$B$" & NumRows_Gist & ";2;FALSE);'Niet vorige upload') <> 'Niet vorige upload'; VLOOKUP(I" & rr & ";$A$3:$B$" & NumRows_Gist & ";2;FALSE) + J" & rr & "; 'correct') <> 0; ''; '0')"
Next
End Sub
【问题讨论】:
-
嗨,vlookup 公式中的那些分号不应该是逗号吗?还是不同语言版本的excel差异?
-
@JoeJ 嗨,我不确定,但在我的 Excel 中,我在参数之间使用分号。我首先制作了公式并检查了它,现在我正试图将它带入我正在运行的宏中。所以公式本身可以按预期工作。
-
在 VBA 中,您必须将公式放入 English 格式,用英文函数名和逗号作为参数分隔符。这样,您的代码将保持独立于 Excel 中使用的语言。替代方法是使用
FormulaLocal- 但您需要确保 Excel 的语言始终相同 -
@FunThomas 我更改了分号,但这没有区别。我不认为分号导致错误。
-
分号一定要改成逗号,文字要双引号,不能单引号。 (您必须将双引号加倍,因为它们是带引号的字符串的一部分)。
标签: excel vba excel-formula