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