Wendy希望在工作表打印输出的页眉中包含页码,但要有所不同-第1页的第21A页,第2页的第21B页,第3页的第21C页,等等。她想知道如何创建这样的页码方案。

有几种方法可以解决此问题,所有方法都涉及到宏的使用。如果您实际上要打印当前工作簿中的所有工作表,并且所有这些工作表都没有超过一页的长度(打印时),则以下宏将按要求设置页眉的中心部分:

Sub PageNums1()

Dim sheet As Worksheet     Dim J As Integer

J = 1     On Error Resume Next     For Each sheet In Worksheets         Sheets(J).PageSetup.CenterHeader = "Page 21" & Chr(64 + J)

J = J + 1     Next End Sub

请注意,该宏实际上并没有打印任何内容。它所做的只是更改标题信息。如果您真的只想打印当前的工作表,而该工作表将需要在打印输出上打印多页,则以下应该可以正常工作:

Sub PageNums2()

Dim X As Integer     Dim Y As Integer     Dim Z As Integer

Z = 1     For X = 1 To ActiveSheet.HPageBreaks.Count + 1         For Y = 1 To ActiveSheet.VPageBreaks.Count + 1             ActiveSheet.PageSetup.CenterHeader = _               "Page 21" & Chr$(64 + Z)

Worksheets.PrintOut Z, Z             Z = Z + 1         Next Y     Next X End Sub

此宏基于打印输出上水平(HPageBreaks)和垂直(VPageBreaks)分页符的位置来计算页面。

您也可以尝试以这种方式仅使用Pages集合:

Sub PageNums3()

Dim J As Integer

For J = 1 To ActiveSheet.PageSetup.Pages.Count         ActiveSheet.PageSetup.CenterHeader = "Page 21" & Chr(64 + J)

Worksheets.PrintOut J, J     Next J End Sub

您应该注意,无论选择哪种方法,如果打印输出需要26页以上,都会遇到问题。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(12548)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。