Могу ли я использовать автозаполнение для динамического изменения значений в столбце? - PullRequest
0 голосов
/ 04 мая 2020

В Excel-VBA требуется заменить символ внутри ячейки и распространить эту операцию на все ячейки в одном столбце. Я пытался

Dim i As Integer

Range("M2").Select

For i = 2 To Range("M99999").End(xlUp).Row
    Selection.Offset(1, 0).Select
    ActiveCell.Value = CDec(Replace(ActiveCell.Value, "+", ","))
Next i

Это сработало ... но слишком медленно.

Если в Excel мы напишем правильную формулу в следующей правой ячейке, а затем дважды щелкнем по ее правому нижнему углу, мы получим тот же результат, но действительно быстрее. Таким образом, я зарегистрировал макрос, делающий это. Вот и все

ActiveCell.FormulaR1C1 = "=SUBSTITUTE(RC[-1],""+"","","")"
Range("N2").Select
Selection.AutoFill Destination:=Range("N2:N10174")
Range("N2:N100000").Select

Мне было интересно:

  1. Почему автозаполнение происходит быстрее? Я ожидал, что он выполнит аналогичную операцию
  2. , возможно ли использовать тот же лог c записанного макроса для динамического обновления столбца начиная с (т.е. без копирования вставка вычисляемого столбца в начальный)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...