Excel VBA не разделяет именованные диапазоны / строки при использовании разрыва страницы в макросе

В настоящее время я пытаюсь распечатать лист в формате PDF в Excel, а затем позволить коду автоматически установить разрывы страниц. Код не должен разбивать именованные диапазоны на листе. К именованным диапазонам прикреплено несколько строк, поэтому эти строки должны оставаться вместе на одной странице под этим именованным диапазоном. На этом листе также есть скрытые именованные диапазоны со строками. Код не должен принимать это во внимание.

Я пробовал код ниже, но я получаю сообщение об ошибке. Смотрите изображение под кодом.

Sub CommandButton1_Click()
 'Change pages breaks so it is only split on a named range top or bottom
 Dim n As Name
 Dim RngRows() As Integer
 Dim PageBreakRows() As Integer
 Dim NumPageBreaks As Integer
 Dim i As Integer
 Dim TtlRows As Integer
 Dim MaxRowsPerPage As Integer
 Dim strBreakRow As String
 Dim intBreakRow As Integer

 i = 1
 TtlRows = 0
 NumPageBreaks = 0
 MaxRowsPerPage = 17

 'clear any settings that exist
 ActiveSheet.ResetAllPageBreaks

 For Each n In ActiveWorkbook.Names

'operate only on ranges that start with RANGE in their name
If Mid(n.Name, 1, 1) = "P" Then

   'if named range is visible
   If Range(n).EntireRow.Hidden = False Then
   Debug.Print "Processing Range " & n.Name & " with #"
   Rows = " & Range(n).Rows.Count"
   'add # rows in range to row count.
    TtlRows = TtlRows + Range(n).Rows.Count
    'if rount count larger than max allowable add a page break
        If TtlRows > MaxRowsPerPage Then
        'take first row of current named range and add page break
        ActiveSheet.HPageBreaks.Add before:=Range(Range(n).Rows(1).Address)
        'update Totl row count
        TtlRows = Range(n).Rows.Count
        End If
    Else
        Debug.Print "Range hidden: " & n.Name & " with # rows=" & Range(n).Rows.Count
    End If 'end visible check
 End If 'end name check
Next

End Sub

введите описание изображения здесь

введите описание изображения здесь введите описание изображения здесь

Все ссылки верны. Поэтому я понятия не имею, что здесь не так. Кто-нибудь знает решения? Или знаете лучший код из опыта?

Новое изображение после удаления строки: "Rows = " & Range(n).Rows.Count" " введите описание изображения здесь

0 ответов

Другие вопросы по тегам