Я работал с некоторым кодом VBA, чтобы скопировать несколько листов из различных файлов в разные книги.Хотя код работает хорошо, у него есть некоторые ограничения.В частности, когда базовый файл содержит скрытые листы.
В основном, когда «базовый» файл содержит скрытый лист, скажем, Извлечь лист 2 скрыт.Следующий код вызовет ошибку в строке Sheets ("sheet2"). Выберите при попытке скопировать лист 2.
Насколько я понимаю, это потому, что он изначально распознает, что в коде Instr есть лист,хотя это скрыто.Затем на несколько строк он пытается затем выбрать лист, который он не может сделать, потому что он скрыт.
Любая помощь будет принята с благодарностью, я хочу запускать код Instr только на активных, а не на скрытых листах.и игнорировать все скрытые листы.Пример кода следующим образом
Dim book1 as workbook
Dim book2 as workbook
Dim ws as worksheet
book1.Activate
For Each ws In ActiveWorkbook.Worksheets
If InStr(1, ws.Name, "sheet2") Then
book2.Activate
Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "X2"
book1.Activate
Sheets("sheet2").Select
Set ws = ActiveSheet
If ActiveSheet.AutoFilterMode Or ActiveSheet.FilterMode Then
ActiveSheet.AutoFilterMode = False
End If
Cells.Select
Application.CutCopyMode = False
Selection.Copy
book2.Activate
Sheets("x").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Selection.Columns.AutoFit
End If
Exit For
Next`