Несколько кавычек в формуле VBA - PullRequest
0 голосов
/ 23 ноября 2018

мой первый код работает правильно и возвращает правильный ответ.

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 голосов
/ 23 ноября 2018

Вам не хватает закрывающей скобки для внешней функции 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""))"
0 голосов
/ 23 ноября 2018

Введите формулу вручную на листе, затем перейдите в окно отладки и введите

print activecell.formula

Затем вы можете удвоить внутренние кавычки или заменить их одинарными кавычками, и все готово.
Вы даже можете автоматизировать этот шаг (я написал , что в 2009 году):

 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...