VBA公式中的多引号

时间:2018-11-23 09:39:25

标签: excel vba excel-vba

我的第一个编码工作正常,并返回正确的答案。

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"")"

我应该如何修改它?

2 个答案:

答案 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""))"