@SuNbka

Почему не получается регулировать отсчитываемое количество строк перед подведением итого?

Добрый день, помогите найти ошибку, не могу понять почему только 1 раз отсчитывается 14 строк, а потом строго по 18 каждый раз до конца данных в таблице.
Скрипт подставляет в конце каждой страницы пустую строку где высчитывает итого по 13 и 15 столбцам таблицы.
Скрипт
Sub Print_Title()
    Dim a%, b&, d&, e, n&
    e = ActiveSheet.PageSetup.PrintTitleRows    'Select '.Count '= "$1:$7"
    e = Range(e).Rows.Count
    ActiveSheet.Copy Before:=Sheets(2)
    ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
    ActiveSheet.DrawingObjects(1).Text = "Print"
    ActiveSheet.DrawingObjects(1).OnAction = "KuklP"
    a = ActiveSheet.HPageBreaks(1).Location.Row
    b = Cells(Rows.Count, 1).End(xlUp).Row
    d = a: n = 14 ' первый раз отсчитвваем 14 строк и подбиваем итого (дальше почему то подбивается только после 18 строки)
    While d < b
        Rows(d - 2).Insert ' пустая строка
        Rows(d - 2).Insert ' пустая строка в которую происходит запись
        Cells(d - 1, 12).Value = "ИТОГО" ' пишем в 12 колонку слово Итого
        Cells(d - 1, 13).Formula = "=SUM(" & Range(Cells(n, 13), Cells(d - 3, 13)).Address(0, 0) & ")" ' подсчет суммы в 13 колонке
        Cells(d - 1, 15).Formula = "=SUM(" & Range(Cells(n, 15), Cells(d - 3, 15)).Address(0, 0) & ")" ' подсчет суммы в 15 колонке
        Cells(d - 1, 13).AutoFill Range(Cells(d - 1, 13), Cells(d - 1, 16)), 0 ' записываем подсчитаное в стоке
        n = d
        d = a + d - e + 4
        b = Cells(Rows.Count, 1).End(xlUp).Row + 2
    Wend
        Rows(d - 2).Insert ' пустая строка
        Rows(d - 2).Insert ' пустая строка в которую происходит запись
        Cells(d - 1, 12).Value = "ИТОГО" ' пишем в 12 колонку слово Итого
        Cells(d - 1, 13).Formula = "=SUM(" & Range(Cells(n, 13), Cells(d - 3, 13)).Address(0, 0) & ")" ' подсчет суммы в 13 колонке
        Cells(d - 1, 15).Formula = "=SUM(" & Range(Cells(n, 15), Cells(d - 3, 15)).Address(0, 0) & ")" ' подсчет суммы в 15 колонке
        Cells(d - 1, 13).AutoFill Range(Cells(d - 1, 13), Cells(d - 1, 16)), 0 ' записываем подсчитаное в стоке
        'Cells(b, 12).Value = "ИТОГО"
        'Cells(b, 13).Formula = "=SUM(" & Range(Cells(n, 13), Cells(b - 2, 13)).Address(0, 0) & ")"
        'Cells(b, 15).Formula = "=SUM(" & Range(Cells(n, 15), Cells(b - 2, 15)).Address(0, 0) & ")"
        'Cells(b, 13).AutoFill Range(Cells(b, 13), Cells(b, 16)), 0
End Sub
  • Вопрос задан
  • 139 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы