2015-07-06 2 views
-1

ActiveCell.FormulaR1C1 = "= ЛЕВЫЙ (RC [11], 3)"Использование CStr в цикле

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

«ActiveCell.FormulaR1C1 = "= LEFT (! R" & CStr (г) & "C11", 3)»

+0

Нужно ли вам петли? Вы можете использовать 'Range (« A1: A99 »). FormulaR1C1 =" = LEFT (RC [11], 3) ". – Jeeped

+0

Выйти из '' 'символов? – Mephy

+0

@Mephy прав, вы не избегаете бит'! R ''. Вы пропустили скобку '' ' –

ответ

1

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

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

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

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

можно хранить формулу в исходной колонке с: ActiveCell.Formula = «= ЛЕВЫЙ (RC [11], 3)»

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

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

0

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

ActiveCell.FormulaR1C1 = "=LEFT(R[" & CStr(r) & "]C[11],3)" 
Смежные вопросы