Eine Überlegung ist es vielleicht wert auf die innere foreach zu verzichten und stattdessen die letzte gefüllte Zelle der Zeile zu ermitteln und dann mit einer repeat- oder for-Schleife zu durchlaufen, in welcher du eben prüfst ob die jeweilige Zelle "existiert" (denn scheinbar existieren sie ja nicht wenn sie leer sind).
Genau deshalb habe ich hier die Frage gestellt.
Weiß jemand wie man das macht?