编译错误,插入if语句

我想在excel的不同表格中插入if语句。 因此我写了以下内容:

Sub Final_Insert_Columns() Dim month As Variant Dim months As Variant months = Array("07 AMSTERDAM", "07 ARNHEM") For Each month In months Sheets(month).Activate Range=("n4").Formula = "IF(OR(T4=0;T4="PAS");"X"; (AJ4/AK4)) Next End sub 

这部分似乎有一个问题:

  Range=("n4").Formula = "IF(OR(T4=0;T4="PAS");"X"; (AJ4/AK4)) Compile error: expected end of statement. 

任何想法,我应该如何得到这个工作?

你的代码需要修改,以反映(1)你需要在你的公式中包括实际的引号,它实际上只是结束了VBA自己使用的引号,(2)你需要结束整个事情引号使VBA知道你的公式文本是完整的。 像这样:

 Range=("n4").Formula = "IF(OR(T4=0;T4=""PAS"":);""X""; (AJ4/AK4))" 

另一种方法是用ASCII字符34replace引号插入,如https://stackoverflow.com/a/28507279/5090027所示 。

代替

 Range=("n4").Formula = "IF(OR(T4=0;T4="PAS");"X"; (AJ4/AK4)) 

使用

 Range("n4").Formula = "=IF(OR(T4=0, T4=""PAS""),""X"", (AJ4/AK4))" 

你需要在string中使用“”来转义“另外 – 我认为你需要在公式中使用逗号而不是分号 – 但也许这是一个区域设置,你可以把分号留在一边(我不得不用逗号来testing它在我的机器上),在前面也有一个等号,在公式string中有一个等号,如果你在IF之前没有包含“=”,那么Excel会把它作为一个你插入的string在牢房里。