我想在excel中的diffent工作表中插入一个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.
关于我应该如何运作的任何想法?
答案 0 :(得分:1)
而不是
Range=("n4").Formula = "IF(OR(T4=0;T4="PAS");"X"; (AJ4/AK4))
使用
Range("n4").Formula = "=IF(OR(T4=0, T4=""PAS""),""X"", (AJ4/AK4))"
你需要使用""逃避"在一个字符串内。另外 - 我认为你在公式中需要逗号而不是分号 - 但也许这是一个区域设置,你可以单独留下分号(我必须使用逗号在我的机器上测试它)。您还在前面有一个迷路等号,在公式字符串中有一个缺少的等号。如果你不包括" ="在IF
之前,Excel会将其视为您在单元格中插入的字符串。
答案 1 :(得分:1)
您的代码需要进行修改,以反映以下事实:(1)您需要在公式中包含实际引号,目前它实际上只是结束了VBA自己使用的引号,以及(2)您需要结束整个引号用的东西,以便VBA知道你的公式文本是完整的。像这样:
Range=("n4").Formula = "IF(OR(T4=0;T4=""PAS"":);""X""; (AJ4/AK4))"
另一种方法是用ASCII字符34替换引号的插入,如https://stackoverflow.com/a/28507279/5090027所示。