Макрос для автоматичного заповнення стовпців в Excel


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- але я хочу, щоб він заповнювався до останнього ряду даних, заповнених у наборі даних. Це можна зробити за допомогою перевірки, якщо стовпець А заповнений, але я не можу знайти код, який би спрацював - для мене нічого не достатньо просто.

Дані - 10 000 рядків з декількома стовпцями, саме цей фрагмент макросу формує формулу в порожній стовпець, але я хочу лише заповнити 10 000 рядків. У колонці A є дані, тож як я можу використовувати це для визначення діапазону для автоматичного заповнення формули?

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


Ви спробували кодувати чек, чи стовпчик А заповнений? Якщо це так, будь ласка, опублікуйте його та опишіть, що він зробив. Також, будь ласка, поясніть трохи детальніше, як виглядають ваші дані та як потрібно робити макрос (тобто, як вони виглядають до і після запуску макросу). І чи справді ви вірите, що тег [робочого листа-функції] відповідає цьому питанню? Будь ласка, не відповідайте на коментарі; відредагуйте своє запитання, щоб зробити його більш зрозумілим та повним.
Скотт

Привіт @Scott Я змінив питання, як ви запропонували, повідомте мене, чи потрібні будь-які додаткові роз'яснення.
новачок

Відповіді:


0

Ви можете спробувати, ActiveSheet.UsedRange.Rows.Countякий повертає номер останнього рядка поточного робочого аркуша. Хоча він не перевіряє рядок A, це акуратний спосіб заповнити дані до останнього рядка.

Наприклад

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

Ви можете замінити Activesheetз Worksheetоб'єктом , якщо ви хочете , щоб вказати таблицю для роботи.


Я змусив це працювати - дякую @Kenneth L!
новачок
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.