ActiveCell.FormulaR1C1 = "=ЛЕВЫЙ(RC[11],3)"

Вышеупомянутое работает так, как я хочу. Но когда я изменяю его (ниже), чтобы я мог перебирать файл с моей переменной цикла, равной «r», я получаю «ожидаемый конец оператора». Есть ли что-то принципиально неправильное в том, что я пытаюсь сделать?

'ActiveCell.FormulaR1C1 = "=LEFT(!R" & CStr(r) & "C11",3)"

-1
Chuck 7 Июл 2015 в 00:07
Вам нужна петля? Вы можете использовать Range("A1:A99").FormulaR1C1 = "=LEFT(RC[11],3)" .
 – 
user4039065
7 Июл 2015 в 00:25
Экранировать символы "?
 – 
Mephy
7 Июл 2015 в 00:25
Верно, вы не экранируете бит !R". Вы пропустили скобку "
 – 
AnalystCave.com
7 Июл 2015 в 00:30

2 ответа

Похоже, вы пытаетесь сохранить три левых символа из столбца 11 вдали от активной ячейки.

Если вы перебираете строки (R), все, что вам нужно сделать, это заменить формулу в активной ячейке r число раз. Окончательный r будет окончательно установлен как формула в активной ячейке.

Вы пытаетесь пройти каждую из строк и сохранить три левых символа из столбца 11 вправо?

Если это так, вы можете попробовать ActiveCell.Offset(row,col). Вы можете перебирать строки с помощью: ActiveCell.Offset(1,0).activate

Вы можете сохранить формулу в исходном столбце с помощью: ActiveCell.Formula = "=LEFT(RC[11],3)"

Если вы отслеживаете количество циклов, вы можете вернуться к начальной точке с помощью: ActiveCell.OffSet(-(myRowCount),0).Activate

Вы также можете проверить ActiveCell.value, чтобы увидеть, не достигли ли вы конца своих данных.

1
Frank Murphy 7 Июл 2015 в 00:54

Вы перепутали несколько символов. Вот решение:

ActiveCell.FormulaR1C1 = "=LEFT(R[" & CStr(r) & "]C[11],3)"
0
SQL Police 7 Июл 2015 в 01:00