Я хотел бы скопировать первую строку каждого рабочего листа от рабочей книги к недавно созданной рабочей книге (рабочая книга B). И вторая строка во втором рабочем листе рабочей книги B и так далее до всех строк копируется. Можно ли сказать мне, как сделать это?
Это код, который вы получаете при использовании функции «Запись макроса» в 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», чтобы перейти к следующей строке.