Notes:
I write macros for me, not usually for others so if this makes a spreadsheet messy, it's probably inconsequential. For instance, this macro hides all zero rows in all sheets, including the hidden sheets. At least, it used to. I never unhide those sheets so perhaps I've evolved the macro enough to prevent this non-problem now.
You need a helper column. In the above example, it's column w. In that column, total the entire row of values and then, any row with a zero total will get hidden. If you don't want to hide a particular line, as with headings, don't put a total in that row.
You need to say how tall your sheets are. I assume that when I'm creating sheets, they're always the same number of rows so in this case, set the for i = 1 to xxx to the row count of your tallest sheet. In this case, 348 rows.
Set up buttons on the first sheet for Unhide and Hide and then you can just click the button to run the macro. Easier that way and I even have some users I've trained to do that for themselves.
@MoiraGoggin In the Report Designer, run the Unhide macro. Always. :-)