打印动态表区域

时间:2018-01-26 20:25:00

标签: excel vba printing range

所有

我有以下代码:

Sub PrintFinalMTO()

Dim lastrow As Long
lastrow = Range("J" & Rows.count).End(xlUp).Row

With ActiveSheet.PageSetup
    .PrintArea = Range("$B$5:$M" & lastrow)
    .Orientation = xlLandscape
    .Zoom = False
    .FitToPagesWide = 1
    .FitToPagesTall = 1
    ActiveSheet.PrintPreview
End With

End Sub

运行宏时,打印预览包含范围(A1:M),而不是从B5开始。该表扩展到M列,但最后一行在J列中有一个值。除了B5以外的行,打印范围是正确的。

非常感谢您对此问题的任何帮助。谢谢

1 个答案:

答案 0 :(得分:1)

我认为.PrintArea期待一个范围地址。我刚检查了PageSetup.PrintArea Property (Excel):这似乎证实了我的信念。

你能放:

.PrintArea = ActiveSheet.Range("$B$5:$M" & lastrow).Address

从我给出的链接:

  

此示例将打印区域设置为Sheet1上的当前区域。注意   您使用Address属性返回A1样式的地址。

Worksheets("Sheet1").Activate  
ActiveSheet.PageSetup.PrintArea = ActiveCell.CurrentRegion.Address