2015-07-27 3 views
0

Я пытаюсь использовать формулу, которая извлекает данные из одного столбца и заполняет другой столбец. Однако моя формула работает нормально; но когда я пытаюсь использовать его в скрипте VB, он бросает ошибку. Пожалуйста, помогите мнеОшибка компиляции для формулы в VBA

Формула

=IF(ISERR(MID(I7,FIND(" ",I7,FIND("Country:",I7))+1,IF(
    ISERR(
    FIND("Country:",I7,1)),0, 
    FIND("Process:",I7,1)) - IF(ISERR(FIND("Country:",I7,1)),0,FIND(" ",I7,FIND("Country:",I7))+1))),"UNDEFINED",MID(I7,FIND(" ",I7,FIND("Country:",I7))+1,IF(
    ISERR(
    FIND("Country:",I7,1)),0, 
    FIND("Process:",I7,1)) - IF(ISERR(FIND("Country:",I7,1)),0,FIND(" ",I7,FIND("Country:",I7))+1))) 

VB код:

Range("K2").Formula = "=IF(ISERR(MID(I2,FIND(" ",I2,FIND("Country:",I2))+1,IF(
       ISERR(FIND("Country:",I2,1)),0,FIND("Process:",I2,1)) - IF(ISERR(FIND("Country:",I2,1)),0,FIND(" ",I2,FIND("Country:",I2))+1))),"UNDEFINED",MID(I2,FIND(" ",I2,FIND("Country:",I2))+1, 
       IF(ISERR(FIND("Country:",I2,1)),0,FIND("Process:",I2,1)) - IF(ISERR(FIND("Country:",I2,1)),0,FIND(" ",I2,FIND("Country:",I2))+1)))" 
Range("K2").Copy 
Range("K2:C10").Pastespecial(XlPasteall) 
+0

Какая ошибка? –

ответ

1

Вы должны удвоить все кавычки в формуле, чтобы избежать их, поскольку они являются частью строки в кавычках в VBA:

Range("K2").Formula = "=IF(ISERR(MID(I2,FIND("" "",I2,FIND(""Country:"",I2))+1,IF(
       ISERR(FIND(""Country:"",I2,1)),0,FIND(""Process:"",I2,1)) - IF(ISERR(FIND(""Country:"",I2,1)),0,FIND("" "",I2,FIND(""Country:"",I2))+1))),""UNDEFINED"",MID(I2,FIND("" "",I2,FIND(""Country:"",I2))+1, 
       IF(ISERR(FIND(""Country:"",I2,1)),0,FIND(""Process:"",I2,1)) - IF(ISERR(FIND(""Country:"",I2,1)),0,FIND("" "",I2,FIND(""Country:"",I2))+1)))"