Excel - макрос для копирования / вставки выбранного диапазона

вопрос

У меня есть сводка данных по месяцам на одном листе и необработанные данные на другом листе. Вместо того чтобы создавать несколько рабочих листов для моих необработанных данных за каждый месяц, я хочу стереть данные за предыдущий месяц и заменить их новыми данными. Для этого мне нужно будет скопировать формулы, которые создали сводку, в другой столбец (для нового месяца), а затем скопировать и вставить значение сводных данных за текущий месяц (поэтому, если исходные исходные данные изменились, это не изменит мой значения там).

пример

 ABCD янв фев март апр 1 5 6 7 

Мне бы хотелось, чтобы мой конечный результат выглядел следующим образом (т.е. скопируйте из A3: A6 и вставьте в B3. Затем в следующем месяце он скопирует из B3: B6 и вставит в C3, и так далее).

 ABCD янв фев март апр 1 1 5 5 6 6 7 7 

Январь и февраль в настоящее время одинаковы, потому что копирование и вставка будут происходить до замены новых необработанных данных.

Надеюсь, это имеет смысл. У меня очень мало знаний в написании VB, но я могу читать и понимать простые. Может ли кто-нибудь помочь мне с макросом, который будет делать это автоматически?

Решение

Этот макрос использует поле ввода, чтобы спросить, какой месяц вы обновляете. Используйте числовые значения вместо ввода месяца. Пример: январь = 1, февраль = 2, март = 3. Я предполагаю, что вы не захотите обновлять январь, поэтому макрос выйдет, если в поле ввода будет введен 1 (если он не обновлен с декабря, тогда мы можем изменить Это).

Надеюсь это поможет.

 Sub Update_Month () Dim answer As Variant Dim jj = 3 answer = InputBox («Какой месяц вы обновляете?» & VbCrLf & _ «Пример: январь = 1, февраль = 2, март = 3 и т. Д.») Выберите вариант ответа Случай 1 Выход Подставка 2 Для j = диапазон от 3 до 6 («B» & j) = диапазон («A» и j) Следующий j Случай 3 для диапазона j = от 3 до 6 («C» & j) = диапазон ( «B» & j) Следующий j Случай 4 Для диапазона j = 3–6 («D» & j) = Диапазон («C» & j) Следующий j Случай 5 Для диапазона j = 3–6 («E» & j ) = Диапазон («D» и j) следующий j случай 6 для j = диапазон от 3 до 6 («F» & j) = диапазон («E» & j) следующий j случай 7 для j = диапазон от 3 до 6 (» G "& j) = диапазон (« F »& j) следующий j случай 8 для j = 3–6 диапазон (« H »& j) = диапазон (« G »& j) следующий j случай 9 для j = 3 к 6 Range («I» & j) = Range («H» & j) Next j Случай 10 для j = 3–6 Range («J» & j) = Range («I» & j) Next j Case 11 For j = диапазон 3–6 («K» & j) = диапазон («J» & j) следующий j Случай 12 для диапазона j = 3–6 («L» & j) = диапазон («K» & j) следующий j End Выберите End Sub 

Обратите внимание, что

Спасибо WutUp WutUp за этот совет на форуме]

Предыдущая статья Следующая статья

Лучшие советы