Написание кода VBA для заполнения до конца диапазона, который варьируется по длине


0

Я пишу макрос, чтобы автоматизировать завершение отчета, который имеет одинаковую столбчатую структуру (то есть, те же поля в тех же столбцах месяц за месяцем). Однако количество записей в отчете меняется от месяца к месяцу.

Используя макрос-рекордер для заполнения определенного столбца, он сгенерировал этот код:

Selection.AutoFill Destination: = Range ("Z2: Z1092")

Похоже, что этот код будет работать только для отчета, заканчивающегося строкой 1092. Есть ли способ изменить этот код, чтобы он динамически обновлялся в зависимости от длины отчета?

Я подумал, что если я определю переменную, равную последней строке отчета, и использую ее вместо 1092 в этой строке кода, это поможет. Я новичок в использовании VBA, и любая помощь очень ценится.

Ответы:


1

Вы можете попробовать:

lngLastRow= ActiveSheet.UsedRange.Rows.Count

Selection.AutoFill Destination:=Range("Z2:Z" & lnglastrow)

но я предлагаю вам избегать использования объекта Selection, так как при выборе ячеек происходит значительное снижение производительности. Вместо этого просто используйте Rangeобъект, чтобы указать на ваши клетки


О, это хорошо, спасибо. Я ценю этого человека!
Ричард Пуллман
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.