Я запускаю макрос, который вставляет данные в другую рабочую книгу. Данные обновляются ежемесячно и вставляются в следующую пустую ячейку. Новые данные зависят от формул в целевой книге, поэтому макросы повторно выбираются для автоматического заполнения ячеек. Как сделать так, чтобы автозаполнение происходило сразу после вставки данных, начиная со следующего пустого места?

Вот как это выглядит: Итак, я хочу, чтобы диапазон находился в следующем пустом месте ... сейчас он берется из данных, записанных в макросах.

Range("B30289:E30289").Select
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("B30289:E40021")
Range("B30289:E40021").Select
Range("I30289:S30289").Select
Selection.AutoFill Destination:=Range("I30289:S40021")
Range("I30289:S40021").Select

1 ответ1

0

Используйте код

Sheets("Source").Range("<DataRange>").Copy Sheets("Target").Range("B1048576").End(XlUp).Offset(1,0)

Где диапазон, который вы хотите скопировать. Пример: "B30289: E40021". Но вы должны быть уверены, что диапазон источника всегда одинаков.

Теперь, если вы хотите, чтобы он тоже был динамическим, вы можете использовать, например:

Sheets("Source").Range("B2:E" & Sheets("Source").Range("E1048576").End(XlUp).Row).Copy Sheets("Target").Range("B1048576").End(XlUp).Offset(1,0)

При этом будет скопирована вся таблица источника данных с "B2" на "E", которая будет скопирована в первую пустую строку целевого листа.

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