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" "