We oftne resolve this – as do “official” and unofficial computerized versions of the game – by using one of two minor modifications.
The subs always fire first, and the sub hits therefore count first (on every round of combat during the turn).
– or –
Sub hits always hit ships if there are ships to hit.
Personally, I just use the second, common sense rule. A sub isn’t going to shoot at a fighter that it can’t hit in the first place. No one I’ve played against has had a complaint about it. Some game engines I’ve used require this rule, including the Hasbro Interactive one. This rule works whether you resolve hits a column at a time or all at once, too.