2015-03-23 4 views
-1

Я установил кнопку для печати некоторых листов в книге, но я хотел бы скрыть некоторые листы, но все же распечатать их. Как изменить следующий код так, чтобы он печатал смесь скрытых и незакрытых листов.Печать некоторых скрытых и некоторых незакрытых листов в рабочей книге

Private Sub PrintNew_Click() 
If Sheets("New").Range("email").Value <> "email" And ActiveSheet.Name = "New" Then 
Cancel = True 
MsgBox "Email Address Needs to be Completed", vbInformation 
If response = vbCancel Then Exit Sub 
Application.EnableEvents = True 
response = MsgBox("Do you really want to print?", vbOKCancel) 
If response = vbCancel Then Exit Sub 
Application.ScreenUpdating = False 
Range("copy") = "Customer Copy" 
Sheets("New").PrintOut copies:=1, Collate:=True 
Sheets("Disclosure").PrintOut copies:=1, Collate:=True 
Sheets("GAP").PrintOut copies:=1, Collate:=True 
Sheets("TCF").PrintOut copies:=1, Collate:=True 
Sheets("Legal").PrintOut copies:=1, Collate:=True 
Range("copy") = "File Copy" 
Sheets("New").PrintOut copies:=1, Collate:=True 
Sheets("Disclosure").PrintOut copies:=1, Collate:=True 
Sheets("GAP").PrintOut copies:=1, Collate:=True 
Sheets("TCF").PrintOut copies:=1, Collate:=True 
Sheets("Legal").PrintOut copies:=1, Collate:=True 
Range("copy") = "Customer Copy" 
End If 
End Sub 

Я хотел бы иметь возможность скрыть «Раскрытие информации», «GAP», «TCF» & «Legal»

Заранее спасибо за любую помощь Джон Дэвис

+1

Отключить обновление экрана, распечатать, скрыть, включить обновление экрана –

+0

Извините, что это не имеет для меня никакого смысла. Я хотел бы, чтобы упомянутые листы всегда были скрыты, но другие упомянутые листы должны оставаться видимыми в книге, которую это помогает. –

+0

Когда вы выключаете обновление экрана, видимость листа не будет видна на экране. Поэтому, как только вы сделали все, что вам нужно сделать, снова включите обновление экрана. Никто не узнает, что произошло на заднем плане. –

ответ

0

Пользователи ищут метод, чтобы напечатать список рабочих листов независимо от их настройки видимости попробовать это:

Примечание: Печать в двух экземплярах (1-й, как Customer Copy и 2, как File Copy)

Sub Wsh_Print() 
Dim aWsh As Variant 
Rem Array with name of all worksheets to be printed 
aWsh = [{"New","Disclosure","GAP","TCF","Legal"}] 
Dim Wsh As Worksheet, vWsh As Variant 
Dim vxWshVisible As Variant, b As Byte 
    Application.ScreenUpdating = False 
    For b = 1 To 2 
     For Each vWsh In aWsh 
      Set Wsh = ThisWorkbook.Worksheets(vWsh) 
      With Wsh 
       .Range("copy") = Choose(b, "Customer Copy", "File Copy") 
       vxWshVisible = .Visible     'Record original worksheet visibility 
       .Visible = xlSheetVisible    'Make worksheet visible 
       .PrintOut IgnorePrintAreas:=False  'Print worksheet 
       .Visible = vxWshVisible     'Reset original worksheet visibility 
       .Range("copy") = "Customer Copy" 
    End With: Next: Next 
    Application.ScreenUpdating = True 
End Sub 
Смежные вопросы