Excel VBA
Excel VBA 代码动态设置打印区域
2016-11-22 20:49:06

摘自:Excel技巧

在Excel中设置打印区域,相信很多网友都会,按下图所示操作即可:

   

但如何用VBA代码在Excel工作表中设置打印区域呢?

可以用下面的方法。

    一、设置打印区域

    方法一:

    用PageSetup.PrintArea属性。代码如下:

    Sub SetPrintArea()      Sheet1.PageSetup.PrintArea = "A1:F15"    End Sub

    上述代码将区域A1:F15设置为打印区域。如果要同时设置多个打印区域,可以将上述代码改为:

    Sub SetPrintArea()      Sheet1.PageSetup.PrintArea = "A1:F15,A20:F45"    End Sub

    上述代码将区域A1:F15及A20:F45设置为打印区域,可以分两页来打印。

    还可以使用变量来设置一个动态打印区域:

    Sub SetPrintArea()      PrintRow = 100      Sheet1.PageSetup.PrintArea = "A1:G" & PrintRow    End Sub

    通过改变变量PrintRow的值来设置不同的打印区域。

    方法二:

    用Names.Add方法。当在Excel中设置一个区域为打印区域后,Excel自动定义了一个名称“Print_Area",因而可以通过定义名称的方法来设置打印区域,代码如下:

    Sub SetPrintArea()      Sheet1.Names.Add "Print_Area", Sheet1.Range("B2:G12")    End Sub

    设置动态打印区域:

    Sub SetPrintArea()      Sheet1.Names.Add "Print_Area", Sheet1.Range("B2").Resize(12, 8)    End Sub

    上述代码将B2:I13区域设置为打印区域,通过改变Resize(12, 8)的参数来调整打印区域的大小。

    二、取消打印区域

    将PageSetup.PrintArea属性设置为空:

    Sub ClearPrintArea()      Sheet1.PageSetup.PrintArea = ""   '空字符串    End Sub

    或删除已定义的“Print_Area”名称:

    Sub ClearPrintArea()      On Error Resume Next      Sheet1.Names("Print_Area").Delete      On Error GoTo 0    End Sub