Я нашел код, который находит все PageBreak на листе (автоматический PB после PageSetup), и я не мог понять, как объяснить это поведение.Когда я запускаю код, PB находится на расстоянии 2 строки от PB, но при отладке (независимо от того, куда я ставлю точки останова, он работает как положено.
В моих листах от 100 до нескольких тысяч строк, и сначала я форматирую их какнужно, затем нужно вставить PB перед каждой строкой, в которой есть № 2 в столбце А. Затем мне нужно поставить границу для каждого разрыва страницы (не имеет значения, если это автоматический или ручной).
Код:
Dim rngBorder As Range
Dim lngLastRow As Long
Dim lngLastCol As Long
Dim lngHPBreak As Long
Dim lngVPBreak As Long
Dim lngRow As Long
Dim lngCol As Long
Dim rngAC As Range
lngCol = 1
With ActiveSheet
Set rngAC = ActiveCell
lngLastRow = .UsedRange.Cells(.UsedRange.Rows.Count, 1).Row
lngLastCol = .UsedRange.Cells(1, .UsedRange.Columns.Count).Offset(1, 0).Column
.Cells(lngLastRow + 1, 1).Activate
' lngRow = 1
' For lngVPBreak = 1 To .VPageBreaks.Count
' lngCol = 1
' For lngHPBreak = 1 To .HPageBreaks.Count
' Set rngBorder = .Range(.Cells(lngRow, lngCol), _
' .Cells(.HPageBreaks(lngHPBreak).Location.Row - 1, .VPageBreaks(lngVPBreak).Location.Column - 1))
' rngBorder.BorderAround xlContinuous, xlThick
' lngRow = .HPageBreaks(lngHPBreak).Location.Row
' Next
'
' Set rngBorder = .Range(.Cells(lngRow, lngCol), .Cells(lngLastRow, .VPageBreaks(lngVPBreak).Location.Column - 1))
' rngBorder.BorderAround xlContinuous, xlThick
'
' lngCol = .VPageBreaks(lngVPBreak).Location.Column
' Next
lngRow = 1
For lngHPBreak = 1 To .HPageBreaks.Count
Set rngBorder = .Range(.Cells(lngRow, lngCol), _
.Cells(.HPageBreaks(lngHPBreak).Location.Row - 1, lngLastCol))
rngBorder.BorderAround xlContinuous, xlThick
lngRow = .HPageBreaks(lngHPBreak).Location.Row
Next
Set rngBorder = .Range(.Cells(lngRow, lngCol), .Cells(lngLastRow, lngLastCol))
rngBorder.BorderAround xlContinuous, xlThick
rngAC.Activate
End With
(я прокомментировал VPageBreaks, потому что они мне не нужны)
Итак, этот код создает границу через 2 строки после PB, затем через 4 строки на второй странице, затем за 6 строк ии так далее ...
Но ... когда я устанавливаю точку останова в VBA ... она работает просто, точно устанавливая границы именно там, где это необходимо.
Как это объяснить ???? Какотладить такой код ?????
Заранее спасибо
Том