VBA Excel - выпуск Range.formula - PullRequest
0 голосов
/ 28 мая 2018

В моем коде есть определенная часть, которую я не могу заставить работать,

Я пытаюсь выполнить следующую команду на VBA =RIGHT(LEFT(X1;Z1-2);LEN(LEFT(X1;Z1-2))-FIND(":";X1))

В ячейке X1, тамэто текст: RESULTS:NG & MODEL:IJ

Мой код VBA:

LR = Cells(Rows.Count, "A").End(xlUp).Row

For i = 1 To LR
   cel = "A" & i
   cel2 = "Y" & i
   cel3 = "Z" & i
   cel4 = "X" & i

   Range("M" & i).Formula = "=RIGHT(LEFT(" & cel4 & "," & cel3 & "-" & 2 & "),LEN(LEFT(" & cel4 & "," & cel3 & "-" & 2 & "))-FIND(:" & cel4 & "))"

Next i

Я открыт для лучшего подхода и к этой проблеме

Заранее спасибо

1 Ответ

0 голосов
/ 28 мая 2018

Попробуйте написать все формулы одновременно и по возможности уменьшите кавычки в формуле.

   Range(Cells(1, "M"), cells(lr, "M")).Formula = _
     "=RIGHT(LEFT(X1, Z1-2), LEN(LEFT(X1, Z1-2))-FIND(char(58), X1))"

Все ссылки на диапазон и ячейки в подпроцедуре лучше с правильно определенной ссылкой на родительский лист.

dim lr as long
with worksheets("sheet1")
    LR = .Cells(.Rows.Count, "A").End(xlUp).Row
    .Range(.Cells(1, "M"), .cells(lr, "M")).Formula = _
      "=RIGHT(LEFT(X1, Z1-2), LEN(LEFT(X1, Z1-2))-FIND(char(58), X1))"
end with
...