Если вам известны номера листов того, что вы хотите скопировать (что, как вам кажется, вы делаете из своего поста), вы можете просто скопировать их, чтобы создать новую книгу:
Sheets(array(1,3,5)).copy
Это скопирует листы 1, 3 и 5 к новой книге.
В качестве альтернативы, если вы хотите сначала выбрать их, а затем запустить макрос, этот код скопирует их в новую книгу:
Activeworkbook.Windows(1).SelectedSheets.copy
Затем вы можете l oop через листы в новой книге, например:
Dim WS as worksheet
For each WS in worksheets
cells.copy
range("A1").PasteSpecial xlPasteValues
next
Это скопирует и вставит в качестве значения все на каждом листе.
Я заметил, что вы сказали в своих комментариях, что используя Activeworkbook.Windows(1).SelectedSheets
сделает все листы, но это не так. Я только что создал новую рабочую книгу, добавил 5 листов, выбрал 1, 3 и 5 и запустил этот код, получившаяся рабочая книга была новой рабочей книгой с 3 листами, Sheet1, Sheet3 и Sheet5.