使用VBA设置可以实时更新的打印区域

2022-11-16 13:02:29 浏览数 (1)

标签:VBA

有时候,工作表中的数据经常发生更新,这样,如果要设置打印区域的话,那么每次更新后都得重新选择并设置,以便将更新的数据包括到打印区域中。

如果希望在工作表数据更新的同时,设置的打印区域也相应的更新,那该如何实现呢?

可以使用VBA代码。

如果数据在工作表的列A至列C,可以使用下面的代码:

代码语言:javascript复制
Sub UpdatePrintArea()
    Dim wks As Worksheet
    Set wks = Sheet1
    With wks
        .PageSetup.PrintArea = .Range("A1", .Range("C" & Rows.Count).End(xlUp)).Address
    End With
End Sub

如果数据为单元格A1所在的当前区域,可以使用下面的代码:

代码语言:javascript复制
Sub UpdatePrintAreaCur()
    Sheet1.PageSetup.PrintArea = [A1].CurrentRegion.Address
End Sub

你可以在每次更新数据后,运行上面的过程。如果想要让Excel自动更新设置打印区域,则需要使用工作表的Change事件。

在数据所在工作表对象模块中,输入下面的代码:

代码语言:javascript复制
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    UpdatePrintArea
    'UpdatePrintAreaCur
End Sub

这样,当工作表数据发生变化时,会调用UpdatePrintArea过程或者UpdatePrintAreaCur过程,重新设置打印区域。

vba

0 人点赞