设置多个工作表的打印范围(Microsoft Excel)
马丁问是否有一种方法可以同时设置多个工作表的打印范围。他有一个工作簿,其中包含许多结构完全相同的工作表,并且他希望它们各自的打印范围完全相同。
正如马丁发现的那样,无法直接在Excel中执行此操作。
当您选择多个工作表时,选择要设置为打印区域的区域,然后尝试设置打印区域,您会很快发现执行设置的选项显示为灰色,因此您无法选择该选项。
但是,您可以尝试几种方法。一种方法是从一个新的工作簿开始,并开发一个包含所有工作表上需要的打印区域的工作表。然后,复制工作表,但是在工作簿中需要多次。复制的工作表将具有与第一个工作表相同的打印区域。
另一个选择是创建一个宏,它将为您进行打印区域设置。考虑下面的宏,该宏会将所有选定工作表的打印区域设置为活动工作表上的打印区域。 (当选择多张工作表,活动工作表是一个当您运行宏,是可见的。)
Sub SetPrintAreas1() Dim sPrintArea As String Dim wks As Worksheet sPrintArea = ActiveSheet.PageSetup.PrintArea For Each wks In ActiveWindow.SelectedSheets wks.PageSetup.PrintArea = sPrintArea Next Set wks = Nothing End Sub
如果您希望将打印区域设置为您指定的某个范围,而不是需要先在活动工作表上设置打印区域,则可以对宏进行一个小的更改,以便它使用一个范围作为打印区域:
Sub SetPrintAreas2() Dim sPrintArea As String Dim wks As Worksheet sPrintArea = "A7:E22" For Each wks In ActiveWindow.SelectedSheets wks.PageSetup.PrintArea = sPrintArea Next Set wks = Nothing End Sub
要选择其他打印区域以满足您的需要,请替换分配给sPrintArea变量的范围。如果您发现可以在许多不同的工作簿中大量使用该宏,或者如果您发现可能需要定期更改打印区域,则可以更改该宏,以便其提示用户输入使用:
Sub SetPrintAreas3() Dim sPrintArea As String Dim wks As Worksheet sPrintArea = InputBox("Enter print area range") For Each wks In ActiveWindow.SelectedSheets wks.PageSetup.PrintArea = sPrintArea Next Set wks = Nothing End Sub
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(9365)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处找到适用于Excel的较早菜单界面的本技巧的版本: