Leerzeichen löschen per Makro
Moin,
ich habe ein Makro geschrieben, das mir z.B. in Adressdaten unnötige Leerzeichen in den Zellen entfernt, die am Anfang oder am Ende des Zelleneintrags stehen:
Sub Leerzeichen_entfernen()
For Each Zelle In Selection
Zelle.Value = Trim(Zelle.Value)
Next
End Sub
Das Makro funktioniert gut, ABER ich muss vor der Ausführung die Zellen erst markieren.
Wie muss ich das Makro ändern, damit es ohne vorheriges Markieren auf das geöffnete Tabellenblatt wirkt?
Arbeite mit Excel 2007 unter Win7
MfG
Yosimo
ich habe ein Makro geschrieben, das mir z.B. in Adressdaten unnötige Leerzeichen in den Zellen entfernt, die am Anfang oder am Ende des Zelleneintrags stehen:
Sub Leerzeichen_entfernen()
For Each Zelle In Selection
Zelle.Value = Trim(Zelle.Value)
Next
End Sub
Das Makro funktioniert gut, ABER ich muss vor der Ausführung die Zellen erst markieren.
Wie muss ich das Makro ändern, damit es ohne vorheriges Markieren auf das geöffnete Tabellenblatt wirkt?
Arbeite mit Excel 2007 unter Win7
MfG
Yosimo
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 166564
Url: https://administrator.de/contentid/166564
Ausgedruckt am: 14.11.2024 um 03:11 Uhr
8 Kommentare
Neuester Kommentar
Hallo @Yosimo,
Beispiel:
In diesem Beispiel wäre deine ActiveRegion B1:D3 wenn sich dein Curser innerhalb dessen befindet.
Gruß
Snow
Gruß
Snow
Zitat von @Yosimo:
Ich denke, ich nehme die "ActiveCell.CurrentRegion" Version. Was genau beinhaltet denn die CurrentRegion?
Die CurrentRegion der zusammenhängende Bereich an Zellen, in dem du dirch gerade befindest.Ich denke, ich nehme die "ActiveCell.CurrentRegion" Version. Was genau beinhaltet denn die CurrentRegion?
Beispiel:
\ | A | B | C | D | E |
---|---|---|---|---|---|
1 | Daten1 | Daten2 | Daten3 | ||
2 | abc | 152 | test | ||
3 | dies | repräsentiert | Daten | ||
4 | |||||
5 | hier | auch | noch | welche |
In diesem Beispiel wäre deine ActiveRegion B1:D3 wenn sich dein Curser innerhalb dessen befindet.
Gruß
Snow
Gruß
Snow
Moin Yosimo,
Die Beantwortung dieser Frage traue sogar ich mir zu, obwohl VBA-Makros nun nicht gerade mein Hobby sind.
Die Anzahl der CurrentRegion ist konstant und unveränderlich immer gleich eins, wenn denn überhaupt eine existiert.
Von daher fände ich das Schreiben eines Makros zum Durchzählen der Anzahl eigentlich ein weing übertrieben.
Okay, es übt....
Grüße
Biber
Zitat von @Yosimo:
Aha, hab's kapiert, Danke!
Da schießt mir auch gleich die Frage in' Kopf, ob man mit einem Makro die Anzahl der CurrentRegions auslesen kann....
Aha, hab's kapiert, Danke!
Da schießt mir auch gleich die Frage in' Kopf, ob man mit einem Makro die Anzahl der CurrentRegions auslesen kann....
Die Beantwortung dieser Frage traue sogar ich mir zu, obwohl VBA-Makros nun nicht gerade mein Hobby sind.
Die Anzahl der CurrentRegion ist konstant und unveränderlich immer gleich eins, wenn denn überhaupt eine existiert.
Von daher fände ich das Schreiben eines Makros zum Durchzählen der Anzahl eigentlich ein weing übertrieben.
Okay, es übt....
Grüße
Biber
Hallo @Yosimo,
Du könntest z.B. alle beschriebenen zellen anschauen und die jeweligen CurrentRegions vergleichen. (einfach und langsam)
Du könntest aber auch die erste beschriebene Zelle nehmen, und deren CurrentRegion oben so einsetzen, dass vor jedem Check geprüft wird, ob die aktuelle Zelle innerhalb der bereits gefundenen CurrentRegions ist. (komplexer, aber schneller).
Allerdings weiss ich nicht, wie sich eine Tabelle verhält die so aussieht:
Wenn jetzt C3 (
und wenn B2 markiert wäre (
Und wie sieht das aus, wenn D3:E3 leer wäre, die Verbindung also nur nach unten besteht?
Da müsste man also noch etwas recherchieren.
Gruß
Snow
Du könntest z.B. alle beschriebenen zellen anschauen und die jeweligen CurrentRegions vergleichen. (einfach und langsam)
Du könntest aber auch die erste beschriebene Zelle nehmen, und deren CurrentRegion oben so einsetzen, dass vor jedem Check geprüft wird, ob die aktuelle Zelle innerhalb der bereits gefundenen CurrentRegions ist. (komplexer, aber schneller).
Allerdings weiss ich nicht, wie sich eine Tabelle verhält die so aussieht:
\ | A | B | C | D | E |
---|---|---|---|---|---|
1 | abc | def | ghi | ||
2 | def | ghi | jkl | ||
3 | ghi | jkl | mno | pqr | stu |
4 | pqr | stu | vw | ||
5 | stu | vw | x | ||
6 | vw | x | yz |
Wenn jetzt C3 (
mno
) markiert wäre. wäre die CurrentRegion dann A1:E6 oder was anderes?und wenn B2 markiert wäre (
ghi
), ist die CurrentRegion dann A1:C3 oder A1: E6?Und wie sieht das aus, wenn D3:E3 leer wäre, die Verbindung also nur nach unten besteht?
Da müsste man also noch etwas recherchieren.
Gruß
Snow