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

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

Выбор.Место назначения автозаполнения:= диапазон («Z2:Z1092»)

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

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

1 ответ1

1

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

lngLastRow= ActiveSheet.UsedRange.Rows.Count

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

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

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