In VBA werden Datentypen automatisch ineinander umgewandelt, wenn es erforderlich und möglich ist.
Empty (was du als leer bezeichnest) ist ein Zustand, welcher den Inhalt einer Variable als nicht initialisiert kennzeichnet, d.h. diese Variable hat noch keinen Zustand - weil sie noch von niemanden "angefasst" wurde.
Wenn du jetzt prüfst Empty = "" dann wird hier immer True herauskommen, weil VBA aus dem Empty automatisch ein "" macht und folglich dort - mit geistigen Auge betrachtet - ein "" = "" steht. Und ergibt halt True.
Select Case sollte man erst bei 3 oder mehr Bedingungen verwenden (und man sollte es hauptsächlich nur zum Auswerten von numerischen Werten verwenden). In deinem gezeigten Fall reicht daher:
If IsEmpty(Cells(i,j).Value) Then
bzw.
If Cells(i,j).Value = "" Then
Zukünftig also obacht bei solchen Dingen. :)
Gruß
|