在Excel中,将打印区域设置在移动单元格区域内可能是比较困难的事。你可能希望捕捉特定单元格区域为打印区域,或者让打印区域仅考虑某些列。假设在Excel工作簿中有几个辅助列,不希望打印这些列,但希望这些列可见。可以手动设置打印区域以排除非打印区域,但现在已经添加了更多数据,并且希望以同样的方式更新打印区域。 下面的VBA过程将生成从列A到列D的打印区域,而不管你是否更新数据,只要在列A至列D,都将包含在打印区域中。Sub
PrintArea() Dim sh As Worksheet Set sh = Sheet1 With sh .PageSetup.PrintArea = _ .Range('A1',
.Range('D' & Rows.Count).End(xlUp)).Address End WithEnd
Sub 上述代码将捕获列D中最后使用的单元格。代码中的Sheet1是工作表代码名称,如果你使用的工作表不是Sheet1,则需要对此进行修改。 如果想打印单元格A1所处的当前区域,则可以使用下面的代码:Sub
PrintCurrentArea() Sheet1.PageSetup.PrintArea =
[A1].CurrentRegion.AddressEnd
Sub 其中,当前单元格所在的“数据块”中所有数据将被视为打印区域的一部分。这种代码可以添加到Change事件中,这样不必反复运行该宏就会让打印区域自动包含更新后的数据。