VBA代码要设置打印区域,适合1×1页面,并且不为某些选项卡设置打印区域

我有这个代码来设置工作簿中某些工作表的打印区域。 我试图设置打印区域,使其适合每个选项卡在一个页面上,不会将其分成几页。 也可以有人请帮助我的代码不设置打印区域的某些选项卡基于每个选项卡中相同的单元格值?

Sub PrintArea() Dim I As Integer Dim ws As Worksheet WS_Count = ActiveWorkbook.Worksheets.Count For I = 1 To 6 Set ws = ThisWorkbook.Sheets(I) ws.PageSetup.PrintArea = ws.Range("A1:Z24").Address With ws.PageSetup .Orientation = xlLandscape .FitToPagesWide = 1 .FitToPagesTall = 1 End With Next I End Sub 

你几乎在那里。 您可以直接在工作表中循环,而不必使用计数器引用它们。

这应该让你很好:)

 Sub PrintArea() Application.ScreenUpdating = False Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets Select Case ws.Index Case Is = 1, 2, 3, 4, 5, 6 'only perform action on first 6 sheets If ws.Range("A25") = "Yes" Then 'adjust to desired range and indicator With ws.PageSetup .PrintArea = ws.Range("A1:Z24").Address .Orientation = xlLandscape .FitToPagesWide = 1 .FitToPagesTall = 1 End With 'set print area to only 1 page With ws .Activate 'need to activate sheet to view Page Break Preview ActiveWindow.View = xlPageBreakPreview 'need to view Page Break Preview to drag page breaks .VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1 `drag page over so it's just one page ActiveWindow.View = xlNormalView 'set view back to normal End With End If End Select Next ws End Sub