Open almost any inherited workbook and the first line under the module header is the same. On Error Resume Next. Not around one risky call. At the top, for everything.
It is easy to see how it gets there. Someone's macro stops with a run-time error, someone else pastes that line in, the macro stops stopping, and everyone moves on. (The macro also stops doing whatever the failing line was for, but nobody sees that part.) The statement stays in effect until On Error GoTo 0 or until the procedure exits, so in a long Sub it covers far more than the line that caused the trouble.
The other classic is a module without Option Explicit. A misspelled variable quietly becomes a fresh Variant that is always empty, and the totals still look plausible.
None of this is a VBA syntax problem. It is what happens when the next person can't tell which errors were expected. My fix is boring. Tick Require Variable Declaration in the editor so new modules get Option Explicit, and wrap the one risky call in On Error Resume Next, a check of Err.Number, then On Error GoTo 0.