[英]How do I copy and paste formatting of excel tab to other tabs except a selected sheet using excel VBA
[英]Formatting Excel sheet using VBA
我有的
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也包括在内。 我不想手动拖动分页符,因为这会调整字符的大小。 我希望设置列宽,以使其适合具有正常页边距的信纸。
我真的很感谢任何建议。
如果我理解正确,我认为您想要的是PageSetup.PrintArea
属性。 您可以添加:
.PrintArea= "$A$1:$C$48"
到您的with区块。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.