Устранение неполадок Удаление дополнительной страницы
У меня есть код, который создает отчет на временном листе в печатном формате. В этом коде он призывает Sub SetPageBreaks
(ниже код). У меня проблемы с удалением определенного разрыва страницы, установленного между столбцами G:H
,
Sub SetPageBreaks(SheetObj As Worksheet)
Dim TotRow%, LinesPerPg%, NumPgs%, Page%
TotRow = SheetObj.UsedRange.Rows.Count
LinesPerPg = 56
NumPgs = RoundUp(TotRow / LinesPerPg)
With SheetObj
.ResetAllPageBreaks
For Page = 1 To NumPgs
.Rows(LinesPerPg * Page + 1).PageBreak = xlPageBreakManual
Next Page
.Columns("J").PageBreak = xlPageBreakManual
.Columns("H").PageBreak = xlPageBreakNone
End With
End Sub
Function RoundUp(ByVal Number As Double) As Long
RoundUp = Application.WorksheetFunction.RoundUp(Number, 0)
End Function
Между колоннами I:J
является последним столбцом страницы (он должен занимать всю ширину страницы, следует ожидать некоторого масштабирования). Почему мой код не удаляет разрыв на col H
?
Изменить (Новая попытка кодирования):
Я обновил свой код до следующего безуспешно (после настройки полей в соответствии с моими предпочтениями, затем добавив .FitToPagesWide
Это вырезка из моей последней колонны.
Option Explicit
Sub SetPageBreaks(SheetObj As Worksheet)
Dim TotRow%, LinesPerPg%, NumPgs%, Page%
TotRow = SheetObj.UsedRange.Rows.Count
LinesPerPg = 56
NumPgs = RoundUp(TotRow / LinesPerPg)
With SheetObj
.ResetAllPageBreaks
For Page = 1 To NumPgs
.Rows(LinesPerPg * Page + 1).PageBreak = xlPageBreakManual
Next Page
With .PageSetup
.HeaderMargin = 21.6
.FooterMargin = 21.6
.TopMargin = 86.4
.LeftMargin = 18
.RightMargin = 18
.BottomMargin = 54
.FitToPagesWide = 1
.FitToPagesTall = False
End With
End With
End Sub
1 ответ
Решение
Чтобы произошло какое-то масштабирование, вы должны сообщить Excel, как это сделать. В начале блока С добавьте:
.PageSetup.Zoom = False
.PageSetup.PrintArea = "$A:$I"
.PageSetup.FitToPagesWide = 1
.PageSetup.FitToPagesTall = False
Ваши последние 2 со строками блоков больше не нужны.