My suggestion:
Use the last 347 columns on the sheet as a row selection matrix. The first column would correspond to Report #1 and each row in the column would have a 1 if that row is to be hidden for that particular report.
For instance column "WRV" i.e. #16038, would have a 1 in rows: 23, 24, 33 & 38. Then all you need is a loop counting from 1 to 347 that puts the count # in A3 and un-hides all rows, then re-hides only the rows with a 1 for that particular report.
Sub PrtAll()
Dim ReportNumber As Long, _
RowNumber As Long
For ReportNumber = 1 To 347
Cells.Select
Selection.EntireRow.Hidden = False
For RowNumber = 1 To 98
If Cells(RowNumber, ReportNumber+16037) = 1 Then
Cells(RowNumber, ReportNumber+16037).EntireRow.Hidden = True
End If
Next RowNumber
Range("A3").Value = ReportNumber
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Next ReportNumber
End Sub 'prtall
Bookmarks