Добрый день
Странное поведение проявил макрос:
Исчезнувший на этапе тестирования недочёт вдруг появился опять, перед самым внедрением готового рабочего файла.
на 1 странице всего 62 строки.
Строка "Итого по странице" идёт следующей строкой, но она не последняя на странице.
Следующая строка продолжает таблицу (за номером 63) на этой же странице.
Начиная со следующей страницы (и до 16 включительно), к последней строке (после "Итого по странице) начинает прибавляться по одной строке, кратно числу страниц, а вставленная макросом строка с итогом соответственно смещается вверх.
То есть на пятой странице, под строкой "Итого по странице", ещё пять строк продолжения таблицы и так до 16 страницы включительно.
Интересно что после 16 страницы всё встало нормально (по строкам) и дальнейшая таблица нормально разбита постраничными итогами.
Вот код, подскажите пожалуйста что исправить:
Код |
---|
Sub постраничные_итоги()
Application.ScreenUpdating = False 'False True
ActiveWindow.View = xlPageBreakPreview
Dim i&, hpb As HPageBreak, c1 As Range, c2 As Range
Set c1 = [A3] ' >>> первая ячейка суммируемого столбца <<<
For Each hpb In ActiveSheet.HPageBreaks
Set c2 = Cells(hpb.Location.Row - 1, c1.Column)
'c2.Select
c2.EntireRow.Insert
c2.Offset(-1, 2).Formula = "=""Итог по странице: Число порядковых номеров = ""&SUBTOTAL(3," & Range(c1, c2.Offset(-2, 0)).Address & ")& ""; Сумма фактического кол-ва штук = ""&SUBTOTAL(9," & Range(c1.Offset(0, 7), c2.Offset(-2, 7)).Address & ")"
Set c1 = c2
Next
Set c1 = Cells(Rows.Count, c1.Column).End(xlUp)
ActiveWindow.View = xlPageLayoutView
ActiveWindow.View = xlNormalView
ActiveWindow.SplitRow = 2
ActiveWindow.FreezePanes = True
Application.ScreenUpdating = True 'False True
End Sub
|