I have a sub that when I run it in debug mode and run it step by step it runs perfectly, however when you let it run by itself it skips half of the if statements. Here is the code:
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub InsertRowPageBreak()
Dim WS As Worksheet
Dim rng As Range
Dim pb As Variant
Dim Row As Integer
Dim OffSet As Integer
Dim InsertRow As Integer
'switch to page break view to capture page breaks properly
ActiveWindow.View = xlPageBreakPreview
Sheets(1).Activate
Rows("1:1").Select
Selection.Delete Shift:=xlUp
Set WS = ThisWorkbook.Worksheets(1)
WS.Activate
For Each pb In WS.HPageBreaks
Row = pb.Location.Row
Range("A" & Row).Select
If (Range("A" & Row - 1) = "Date") Then
'Add page break above the header that is already there and skips adding a new header
InsertRow = Row - 4
Range("A" & InsertRow).Select
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
Else
'Added sleep to see if that helped
Sleep 1500
'copy and insert headers depending on section then add pagebreak above header
InsertRow = Row
If (Range("V" & InsertRow) = "Positive") Then
Sheets(2).Activate
Rows("1:4").Select
Selection.Copy
Sheets(1).Activate
Range("A" & InsertRow).Select
Selection.Insert Shift:=xlDown
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
Debug.Print "1"
ElseIf (Range("V" & InsertRow) = "Negative") Then
Sheets(2).Activate
Rows("5:8").Select
Selection.Copy
Sheets(1).Activate
Range("A" & InsertRow).Select
Selection.Insert Shift:=xlDown
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
Debug.Print "2"
ElseIf (Range("V" & InsertRow) = "Question") Then
Sheets(2).Activate
Rows("9:12").Select
Selection.Copy
Sheets(1).Activate
Range("A" & InsertRow).Select
Selection.Insert Shift:=xlDown
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
Debug.Print "3"
End If
End If
Next pb
End Sub
When I run this step by step the debug.print printed 1113 (inserted 4 “header rows” to the top of the pages) but when I run it only prints 13 (inserted 2 “header rows”). So it looks like it got the first one for Positive but not the next two. At first I thought it had to do with the data that is in the cell that it is looking at, but given the same data run and debug return different results. I have tried to add sleep time to this to see if the link was the time I was added when debugging but that did not work. Any insight or suggestions would be greatly appreciated.
Bookmarks