2

Я записал макрос в Excel, который заполняет столбцы формулами.  Тем не менее, он ограничен диапазоном, который я использовал в моих тестовых данных, то есть он не заполняется до последней строки данных, когда я использую другой (более длинный) набор данных:

ActiveCell.FormulaR1C1 = "Term"
Range("H2").Select
ActiveCell.FormulaR1C1 = "=ROUND((RC[-1]-RC[-2])/30,0)"
Range("H2").Select
Selection.AutoFill Destination:=Range("H2:H11")
Range("H2:H11").Select

Если вы видите выше, диапазон ограничен H2:H11 - но я хочу, чтобы он автоматически заполнялся до последней строки данных, заполненных в наборе данных. Это можно сделать с помощью проверки, заполнен ли столбец A, но я не могу найти код, который будет работать, - ничего не достаточно просто для меня, чтобы подобрать.

Данные - это 10000 строк с несколькими столбцами, этот конкретный фрагмент макроса заполняет формулу в пустой столбец, но я хочу заполнить только 10 000 строк. В столбце A содержатся данные, так как я могу использовать это, чтобы определить диапазон для автозаполнения формулы вниз?

Я видел другие ответы здесь, относящиеся к превращению данных в таблицу в Excel - но я не хотел бы делать это, поскольку я имею дело с набором данных из 10 000+ строк, и это добавляет много дополнительного форматирования и т.д. ,

1 ответ1

0

Вы можете попробовать ActiveSheet.UsedRange.Rows.Count который возвращает номер последней строки текущего листа. Хотя он не проверяет строку A, это удобный способ заполнить данные до последней строки.

Например

lastRow = ActiveSheet.UsedRange.Rows.Count
' ... something else ...
Selection.AutoFill Destination:=Range("H2:H" & lastRow)

Вы можете заменить Activesheet объектом Worksheet если хотите указать рабочий лист для работы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .