office交流网--QQ交流群号

Access培训群:792054000         Excel免费交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

Excel VBA 代码动态设置打印区域

2017-07-11 18:01:00
zstmtony
原创
15134

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


  VBA设置打印区域.jpg 


但如何用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


摘自:Excel技巧

分享