马丁问是否有一种方法可以同时设置多个工作表的打印范围。他有一个工作簿,其中包含许多结构完全相同的工作表,并且他希望它们各自的打印范围完全相同。

正如Martin所发现的,没有直接在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培训的来源。

本技巧(3157)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: