Если вы хотите копировать только видимые листы, то почему бы не копировать только видимые листы?
Разве вы не можете сделать что-то вроде:
For N = 1 To Sheets.Count
If Sheets(N).Visible = xlSheetVisible Then
... Copy the sheet
End It
Next N
Или вы хотите сказать, что хотитескопировать скрытые листы, но остаются ли они скрытыми в целевой книге?В этом случае вы можете установить свойство Visible после создания нового листа.
Или вы можете использовать Worksheet.Copy
для копирования листов, а не для копирования и вставки содержимого листа.Это будет более эффективным, так как избавит от необходимости использовать буфер обмена.