我有一个 excel VBA 打印函数,对于我想在工作簿中打印的每张工作表调用一次
我循环浏览 VBA 中的工作表并调用此函数。
Sub PrintSheet
With ActiveSheet
'lastRow is worked out here....
'Autofit YTD and SLY
.Columns("J:J").AutoFit
.Columns("K:K").AutoFit
'Autofit email column
.Columns("F:F").AutoFit
With .PageSetup
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = False
.Orientation = xlLandscape
.LeftMargin = Application.InchesToPoints(0.4)
.RightMargin = Application.InchesToPoints(1)
.TopMargin = Application.InchesToPoints(0.5)
.BottomMargin = Application.InchesToPoints(0.5)
.RightFooter = "&P of &N"
.PrintArea = "$A$1:$O$" & CStr(lastRow)
End With
.PrintOut
End With
End Sub
我遇到的问题是,有时(随机行为,并不总是相同的工作表)我正在自动调整的列会拉伸得非常宽,从而迫使其他列离开页面。这与数据无关,因为您可以再次运行打印例程,它会打印以前很好地拉伸列的同一张表。我正在修剪工作表中的所有列值,因为它们首先使用 VBA 代码输入
除了我所说的拉伸列是自动调整的列之外,我无法找到任何具有这种行为的模式。
有什么想法吗?