Этого можно добиться без зацикливания
Dim I as Long
I = 7
With ws.Range("A2:A" & I)
.Formula = "='" & .Parent.Name & "'!M2"
End With
With
- это сокращенный способ использования одного и того же префикса в блоке кода. Компилятор VBA
ставит префикс перед всем, что начинается с .
, с тем, что объявлено в блоке With
Эквивалентом вышеупомянутого будет:
ws.Range("A2:A" & I).Formula = "='" & ws.Range("A2:A" & I).Parent.Name & "'!M2"
Вы можете настроить параметры форматирования кода. Я всегда отключаю все дополнительные разрывы строк, и тогда он отлично работает для того, как я отформатирую код.
Если вы отрегулируете настройки настолько близко, насколько это возможно к вашим предпочтениям, это должно оставить вам минимум работы, когда вы используете рефакторинг.
Я сомневаюсь, что вы можете отключить переформатирование после рефакторинга. Рефакторинг изменяет код, и так как это всего лишь текст, я сомневаюсь, что вам нужно, чтобы он просто сбрасывал неформатированный текст в ваш источник. Не проще ли установить стиль кода, которого придерживается VS, в соответствии с тем стилем, который вам нравится, и следовать ему?