我的第一个编码工作正常,并返回正确的答案。
ActiveSheet.Range("I2:I" & LastROwColumnList).Formula = "=IF(MID(F2,8,3)=""T_2"",""Team_A"",""NA2"")"
但是在尝试在公式中添加更多条件时不起作用
ActiveSheet.Range("I2:I" & LastROwColumnList).Formula = "=IF(MID(F2,8,3)=""T_2"",""Team_A"",IF(MID(F2,8,3)=""P_9"",""Team_B"",""NA"")"
我应该如何修改它?
答案 0 :(得分:0)
在工作表中手动输入公式,然后转到调试窗口并键入
print activecell.formula
然后可以将内部引号加倍,或将其替换为单引号,然后完成。
您甚至可以自动化该步骤(我在2009年写了that):
Sub RngToVba(src As Range)
'writes the VBA code to re-create the formulae in given range
'by Patrick Honorez - www.idevlop.com
'usage: from debug window, type RngToVba [L14:R14]
' or RngToVba range("L14:R14")
Dim c As Range
For Each c In src
Debug.Print "range(""" & c.Address & """).formula = """ & _
Replace(c.Formula, """", """""") & """"""
Next c
End Sub
答案 1 :(得分:0)
由于添加了内部IF函数,因此缺少了外部IF函数的右括号。
这应该做到:
ActiveSheet.Range("I2:I" & LastROwColumnList).Formula = "=IF(MID(F2,8,3)=""T_2"",""Team_A"",IF(MID(F2,8,3)=""P_9"",""Team_B"",""NA""))"