是)我有的
Excel 2007 工作表。同一工作簿中多个工作表中范围 A1:C48(固定)中的信息。
我需要的
我需要在具有正常边距的 Letter 尺寸纸张上打印此选择。但条件是我需要适应选择的宽度,即 3 列到 1 页。我必须保持列的宽度恒定以保持恒定的字体大小。我想使用 VBA 来做到这一点。
这是我尝试过的代码:
Sub printing()
Dim w1 As Single, w2 As Single, w3 As Single
Application.ScreenUpdating = False
w1 = 62
w2 = 24.71
w3 = 22.14
For i = 1 To ActiveWorkbook.Worksheets.Count
Worksheets(i).Activate
ActiveSheet.Columns(1).ColumnWidth = w1
ActiveSheet.Columns(2).ColumnWidth = w2
ActiveSheet.Columns(3).ColumnWidth = w3
ActiveSheet.Range("A1:C48").Select
With Worksheets(i).PageSetup
.PaperSize = xlPaperLetter
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.LeftMargin = Application.InchesToPoints(0.5)
.RightMargin = Application.InchesToPoints(0.75)
.TopMargin = Application.InchesToPoints(1.5)
.BottomMargin = Application.InchesToPoints(1)
.HeaderMargin = Application.InchesToPoints(0.5)
.FooterMargin = Application.InchesToPoints(0.5)
End With
Next i
Application.ScreenUpdating = True
End Sub
虽然这会调整列的大小并设置其他属性,但分页符仍然保持不变,当我尝试打印它时,还包括第 4 列。我不想手动拖动分页符,因为这会调整字符大小。我更喜欢设置列宽,以便它适合具有正常边距的信纸。
我真的很感激任何建议。