Autor: Peter Haserodt  --- Aus Excel VBA - Gruppe: Verschiedenes

Fehlerquellen (2) - Zellen mit vielen Zeichen

Autor: Peter Haserodt - Erstellt: --      - Letzte Revision: --Gruppenthema: 4 Folgen 1 2 3 4 Sie sind in Folge:2

Fehlerquellen bei Überladungen von Zellen- Bis einschließlich Excel 2003

Excel hat sich längst von seinem eigentlichem Sinn - Tabellenkalkulation - hin zu einer Art Eierlegenden Wollmilchsau entwickelt (Wird entsprechend missbraucht). Zellen werden oft sinnlos überfrachtet und z.Teil ganze Romane hineingeschrieben. Wahrscheinlich war Excel in der Entwicklung nicht konsequent und hat Inhalte zugelassen, die in bestimmten Situationen nicht verarbeitet werden können. Warum auch immer.

Es gibt einige unschöne Dinge die passieren können, wenn Excelzellen zu große Inhalte haben.
Leider werden hier keine Laufzeitfehler ausgelöst und man sitzt im Dunkeln.
Ich möchte Ihnen einige hier vorstellen, um Sie dafür zu sensibilisieren.

Hinweis E2007: Die hier beschriebenen Problematiken tauchen m.E. in Excel 2007 nicht mehr auf.


Blattkopie

Um Blätter mit Formaten sauber zu kopieren, nimmt man in der Regel den Befehl .copy in seinen verschiedenen Varianten.
(z.B. Worksheets("xyz").copy um dieses Blatt in eine neue Arbeitsmappe zu kopieren)

Das funktioniert auch in der Regel ohne Probleme - aber !!!
Wenn Zellen enthalten sind, die mehr als 255 Zeichen beinhalten, werden diese einfach auf 255 Zeichen abgeschnitten.
Erzeugt man dieses per Hand, gibt Excel eine entsprechende Meldung, in VBA wird leider nichts entsprechendes ausgelöst.
Übrig bleiben eventuell Zellen, die nicht mehr den Ursprungsinhalt haben.

Das schnelle Feld mit Problemen:

Wer mit Feldern bevorzugt arbeitet, hat in der Regel eine sehr gute Performance.
Also in der Regel etwas wie: vMeinFeld = Range("A1:a4"), dann das Feld abarbeiten und wieder irgendwohin zurückschreiben.

Aber auch hier kann es zu unerwünschten Nebeneffekten kommen, nämlich dann, wenn es Zellen gibt, die nach meinen Experimenten mehr als 912 Zeichen haben. Diese werden mit 912 Zeichen zurückgeschrieben.

Value versus Text

Wir haben verschiedene Möglichkeiten einen Inhalt aus einer Zelle auszulesen.
Während Value mir den tatsächlichen Inhalt zurückgibt, gibt mir die Text Eigenschaft die Zelle wie dargestellt zurück.
(Also z.B. wenn eine Zelle über Zahlenformate eine Zusatzinformation anzeigt: 123 kg)

Je nachdem wie man die Zelle weiterverarbeitet, wird man Value oder Text nehmen.
Man muss sich aber im klaren sein, dass die Texteigenschaft nur maximal 1024 Zeichen zurückgibt!
(Noch ein Hinweis nebenbei: werden in der Zelle #### angezeigt auf Grund von zu kleiner Spalten oder anderen Gründen, gibt die Texteigenschaft die #### zurück - dies auch in E2007.)

Dieses Thema hat weitere Beiträge

Fehlerquellen (1) - Namen von Routinen (Makros)
Fehlerquellen (2) - Zellen mit vielen Zeichen
Fehlerquellen (3) - Anzahl von Areas
Fehlerquellen (4) - Value trifft auf Error

Weitere Artikel der Gruppe: Verschiedenes Aus Excel VBA
Nach oben