Короче не буду мучать вас :) У меня есть вот такой код:
Sub Формирование()
Dim wsSh As Worksheet, NewWb As Workbook, asArr(), li As Long, DateString, object As String
Dim iPath As String
DateString = Range("K8").Value
object = Range("D13").Value
Application.ScreenUpdating = False
For Each wsSh In Worksheets
If wsSh.Visible <> -1 Then ReDim Preserve asArr(li): asArr(li) = wsSh.Name: li = li + 1: wsSh.Visible = xlSheetVisible
Next wsSh
Sheets(Array("Лист1", "Лист2", "(Лист3)")).Copy
Set NewWb = ActiveWorkbook
For Each wsSh In NewWb.Worksheets
With wsSh
.Visible = True
.UsedRange.Value = .UsedRange.Value
.Cells.FormulaHidden = True
End With
Next
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Перенесенные"
.Show
If .SelectedItems.Count = 0 Then Exit Sub
iPath = .SelectedItems(1) & Application.PathSeparator
End With
NewWb.SaveAs Filename:=iPath & DateString & " " & object & " Перенесенные.xls"
Application.ScreenUpdating = True
End Sub
Данный код при его выполнении, копирует листы из одной книги и создает новый файл куда и вставляет скопированные листы. При этом имя задается из ячеек.
Но изначально я выставил что при открытие книги листам 1,2 и 3 задается параметр xlVeryHidden. Поэтому копирование листов невозможно если не разблочить листы.
Но эти листы после выполнения данной процедуры должны скрыться опять с таким же параметром xlVeryHidden. Ибо пользователю нечего лезть на эти листы, да и вообще знать о их существовании.
Как дополнить код, чтобы до копирование функция VeryHidden отключилась и после формирования включилась? Причём при копировании и создании новой книги с листами 1, 2 и 3 Лист 3 в новой книге тоже должен иметь это свойство. Подскажите?