Excel/VBA (Visual Basic): Prüfen ob Zelle leer ist?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Glätten ersetzt bei mir nur aufeinanderfolgende Leerzeichen durch EINES, immerhin.
ist ja wohl auch so gedacht.
Die anderen "Leerzeichen" haben keine Sammelbezeichnung. Du kannst mit =wechseln und vielfacher Verschachtelung mehrere dieser Zeichen durch leer ("") ersetzen, zB:
=WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(GLÄTTEN(R2);"_";"";1);"_";"";1);"-";"";1);"-";"";1);"-";"";1);" ";"";1);" ";"";1)

Diese xl-FORMEL wechselt 2 Underbars und drei Bindestriche sowie zwei weitere durch GLÄTTEN schon isolierte Leerzeichen gegen jeweils NICHTS = "" aus. Maximale Möglichkeit in xl2003 (es sei denn, Du machst das mehrstufig über mehrere Zellen).
Ab xl2007 kannst Du mehr Verschachtelungen anlegen und damit mehr Zeichen auf einmal wechseln. Ist halt unübersichtlich.

In VBA würde ich das über Do until iserror(instr("_", Text, 1)-Schleifen machen,
das für alle auszuwechselnden Zeichentypen
und vor jeder Schleife ein
on error resume next-Befehl.
(ginge auch mit Do while instr("_", Text, 1) >=1 -Wend-Schleifen)
Oder über Suchen-Ersetzen in definiertem Bereich
(der muss aber mindestens 2 Zellen haben, sonst werden im gesamten Blatt alle diese Zeichen ersetzt!!!)
Die Einzelheiten musst Du in der Hilfe nachschlagen.


Iamiam  10.05.2013, 00:15

danke für den *, die meisten Antworten hier bleiben ja vollkommen un"besternt"! (neben denen, die wegen nur einer Antwort keinen Stern kriegen können)
Ich hoffe, Du kommst mit dem VBA-Antwort-Gerippe klar!

0

Einfach zu dieser Zelle scrollen und nachgucken? Du könntest auch mal bei der Exelhilfe nachschauen, ob es einen bestimmten Befehl dafür gibt, wenn du es bei mehreren Zellen gleichzeitig herausfinden willst.


HiFriend 
Beitragsersteller
 08.05.2013, 17:57

nene :P .. ich möchte das mit Visual Basic prüfen :)

0

If Trim(Cell(x,y))="" Then...

Trim entspricht GLÄTTEN()


HiFriend 
Beitragsersteller
 09.05.2013, 18:26

Danke :s

Funktioniert leider nur teilweise... da die Zellen mit mehreren Leerzeichen gefüllt sind -___-

hat da jemand noch eine Lösung für dieses Problem?

lg HiFriend

0
augsburgchris  13.05.2013, 02:23
@HiFriend

Strings die nur aus Leerzeichen sollen auch als leer gelten.

Kann ehrlich gesagt nicht nachvollziehen warum das nicht klappt. Trim löscht ALLE führenden und nachfolgenden Leerzeichen. Wenn in der der Zelle NUR Leerzeichen sind, sind die automatisch alle führend und werden gelöscht. ich habe 100 Leerzeichen in einer Zelle und sie wird mit Trim(cells(2,2)) ="" als leer erkannt.

0