Excel 在工作簿中打印一些隐藏的和一些未隐藏的工作表
我已经设置了一个按钮来打印工作簿中的一些工作表,但我想隐藏一些工作表,但仍然打印它们。如何更改以下代码,使其混合打印隐藏和未隐藏的工作表Excel 在工作簿中打印一些隐藏的和一些未隐藏的工作表,excel,vba,Excel,Vba,我已经设置了一个按钮来打印工作簿中的一些工作表,但我想隐藏一些工作表,但仍然打印它们。如何更改以下代码,使其混合打印隐藏和未隐藏的工作表 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", vbI
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
Private子打印新建_单击()
如果Sheets(“New”).Range(“email”).Value“email”和ActiveSheet.Name=“New”,则
取消=真
MsgBox“需要填写电子邮件地址”,VBS信息
如果响应=vbCancel,则退出子系统
Application.EnableEvents=True
response=MsgBox(“是否确实要打印?”,vbOKCancel)
如果响应=vbCancel,则退出子系统
Application.ScreenUpdating=False
范围(“副本”)=“客户副本”
图纸(“新”)。打印副本:=1,校对:=True
表格(“披露”)。打印件:=1份,校对件:=True
表格(“间隙”)。打印副本:=1,校对:=True
图纸(“TCF”)。打印输出副本:=1,校对:=True
表格(“合法”)。打印件:=1份,校对件:=True
范围(“副本”)=“文件副本”
图纸(“新”)。打印副本:=1,校对:=True
表格(“披露”)。打印件:=1份,校对件:=True
表格(“间隙”)。打印副本:=1,校对:=True
图纸(“TCF”)。打印输出副本:=1,校对:=True
表格(“合法”)。打印件:=1份,校对件:=True
范围(“副本”)=“客户副本”
如果结束
端接头
我希望能够隐藏“披露”、“差距”、“TCF”和“法律”
提前谢谢你的帮助
John Davies无论可见性设置如何,想要打印工作表列表的用户都可以尝试以下方法: 注意:打印两份副本(第一份为
客户副本
,第二份为文件副本
)
关闭屏幕更新、打印、隐藏、打开屏幕更新对我来说毫无意义的错误。我希望提及的工作表始终保持隐藏,但提及的其他工作表应在工作簿中保持可见,这会有所帮助。当您关闭屏幕更新时,工作表的可见性将在屏幕上不可见。因此,一旦你完成了你需要做的事情,再次打开屏幕更新。没有人会知道在后台发生了什么。很抱歉,这是一个痛苦,但它不是屏幕更新,我需要的。上面提到的工作表已经隐藏了,因为我不希望它们的选项卡显示出来。其他图纸始终可见。我需要的是,当我点击按钮时,隐藏的工作表和可见的工作表正在打印。如果我隐藏提到的工作表并单击打印按钮,我会得到一个运行时错误,因为“1004”。是否有办法修改代码以便打印隐藏的工作表?当您关闭屏幕更新时,即使您取消隐藏工作表,也不会显示。因此,请取消隐藏这些表单,打印它们,然后再次隐藏它们。
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