I found code which find all PageBreak on sheet (automatic PB after PageSetup) and I could not figure out how to explain this behavior. When I run code, PB is 2 rows away from PB, but when debugging (no matter where I put breakpoints, it works as expected.
My sheets have 100 to few thousand rows and firstly I format it as I need, then need insert PB before every row which have No.2 in column A. Then, I need put border to every page break (does not matter if is automatic or manual).
Code is:
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
(I commented VPageBreaks because I do not need them)
So, this code is making border 2 rows after PB, then 4 row after on second page, then 6 rows away, and so on....
But... when I set breakpoint in VBA... it work just fine putting borders exactly where needed.
How to explain that???? How to debug such a code?????
Thanks in advance
Tom