Макрос Excel 2003, который копирует строку в недавно созданной рабочей книге

Я хотел бы скопировать первую строку каждого рабочего листа от рабочей книги к недавно созданной рабочей книге (рабочая книга B). И вторая строка во втором рабочем листе рабочей книги B и так далее до всех строк копируется. Можно ли сказать мне, как сделать это?

1
задан Alex 1 July 2010 в 12:48
поделиться

1 ответ

Это код, который вы получаете при использовании функции «Запись макроса» в Excel.

Sub Macro1()
    Windows("Book1").Activate
    Sheets("Sheet1").Select
    Rows("1:1").Select
    Selection.Copy

    Windows("Book2").Activate
    Range("A1").Select
    ActiveSheet.Paste

    Windows("Book1").Activate
    Sheets("Sheet2").Select
    Rows("1:1").Select
    Selection.Copy

    Windows("Book2").Activate
    Range("A2").Select
    ActiveSheet.Paste
End Sub

Я сделал это только для двух листов в источнике, поэтому две строки в месте назначения. Вы можете увидеть шаги, которые необходимо выполнить. С этого момента довольно легко превратить этот код в цикл и сделать это для любого количества листов / строк. Если вы хотите сделать это для всех листов в исходной книге, вы можете использовать цикл For each.

Dim sht As Worksheet
For Each sht In Worksheets
//do stuff
Next

Когда вы выбираете следующую нижнюю строку в целевой книге, не используйте стиль абсолютной ссылки:

Range("A1").Select

Используйте стиль ссылки на строку, столбец, тогда строки легко увеличивать с помощью счетчика:

Cells(1,1).Select

Затем просто увеличивайте первую «1», чтобы перейти к следующей строке.

2
ответ дан 2 September 2019 в 23:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: