Wenn Sie mit Daten in VBA Excel arbeiten, müssen Sie häufig alle Leerzeichen aus Zellen oder Zeilen entfernen. Leerzeichen können unbedeutende Zeichen sein, die die Durchführung korrekter arithmetischer Operationen oder Vergleiche verhindern. In solchen Fällen wird das effektive Löschen von Leerzeichen zu einem wesentlichen Bestandteil der Arbeit mit Daten.
Es gibt verschiedene Möglichkeiten, Leerzeichen in Excel VBA zu entfernen. Eine davon ist die Verwendung der integrierten TRIM-Funktion, die alle Anfangs- und nachfolgenden Leerzeichen in einer Zeichenfolge entfernt. Wenn Sie jedoch alle Leerzeichen innerhalb einer Zeichenfolge entfernen möchten, müssen Sie eine andere Methode verwenden. Dazu können Sie die REPLACE-Funktion verwenden, mit der Sie eine Teilzeichenfolge durch eine andere ersetzen können. Auf diese Weise können Sie alle Leerzeichen in einer Zeichenfolge durch eine leere Zeichenfolge ersetzen.
Eine weitere effektive Möglichkeit, alle Leerzeichen in Excel-VBA zu entfernen, besteht darin, reguläre Ausdrücke zu verwenden. Ein RegExp-Objekt ist in VBA verfügbar, mit dem Sie mit regulären Ausdrücken arbeiten können. Mit dem regulären Ausdruck "\s" können Sie alle Leerzeichen im Text finden und durch eine leere Zeichenfolge ersetzen. Diese Methode ist besonders nützlich, wenn Sie alle Leerzeichen innerhalb einer Zeichenfolge sowie am Anfang und Ende entfernen möchten.
Entfernen von Leerzeichen in Excel VBA: effektive Methoden
In VBA Excel gibt es mehrere effektive Methoden zum Entfernen von Leerzeichen aus Textzeichenfolgen. Dies kann nützlich sein, wenn Sie die Daten vor der Verarbeitung oder Analyse von unnötigen Zeichen bereinigen müssen. Im Folgenden finden Sie einige Möglichkeiten, die Sie in VBA-Code verwenden können, um Leerzeichen zu entfernen.
1. Verwenden der TRIM-Funktion: Die TRIM-Funktion entfernt Leerzeichen am Anfang und Ende einer Zeile, entfernt jedoch keine Leerzeichen innerhalb einer Zeile. Anwendungsbeispiel:
Dim str As Stringstr = " Пример строки с пробелами "str = Trim(str)
str = "Пример строки с пробелами"
2. Verwenden der REPLACE-Funktion: Mit der REPLACE-Funktion können Sie ein Zeichen oder einen Zeichensatz durch ein anderes Zeichen oder einen Zeichensatz in einer Zeichenfolge ersetzen. Beispiel zum Entfernen von Leerzeichen:
Dim str As Stringstr = "Пример строки с пробелами"str = Replace(str, " ", "")
str = "Примерстрокиспробелами"
3. Verwenden der VBA-Funktion.Trim: Eine VBA-Funktion.Trim ähnelt der TRIM-Funktion, kann jedoch Leerzeichen innerhalb einer Zeichenfolge entfernen. Anwendungsbeispiel:
Dim str As Stringstr = " Пример строки с пробелами "str = VBA.Trim(str)
str = "Пример строки с пробелами"
4. Verwenden der Schleife und der LEN-Funktion: Bei diesem Ansatz können Sie eine Schleife verwenden, um jedes Zeichen einer Zeichenfolge zu durchlaufen und zu überprüfen, ob das Zeichen ein Leerzeichen ist. Wenn es sich bei dem Zeichen um ein Leerzeichen handelt, wird es mit der Funktion REPLACE gelöscht. Anwendungsbeispiel:
Dim str As StringDim i As Integerstr = "Пример строки с пробелами"For i = 1 To Len(str)If Mid(str, i, 1) = " " Thenstr = Replace(str, " ", "")End IfNext i
str = "Примерстрокиспробелами"
Vorgänge zum Löschen von Leerzeichen in Excel VBA wirken sich nicht auf die ursprünglichen Daten aus, sondern geben das Ergebnis nur an eine neue Variable oder dieselbe Variable mit dem überschriebenen Wert zurück. Die Auswahl der Methode hängt von der spezifischen Aufgabe und dem gewünschten Ergebnis ab.
Methode eins: Verwenden der TRIM-Funktion
Um die TRIM-Funktion in VBA Excel zu verwenden, müssen Sie sie auf die entsprechende Zelle oder auf eine Variable anwenden, die eine Textzeichenfolge enthält. Um beispielsweise Leerzeichen aus Zelle A1 zu entfernen, können Sie den folgenden Code verwenden:
| TRIM-Funktion: |
| Range("A1").Value = Trim(Range("A1").Value) |
Sie können auch die TRIM-Funktion in einer Schleife verwenden, um Leerzeichen aus mehreren Zellen zu entfernen. Der folgende Code entfernt beispielsweise Leerzeichen aus den Zellen A1 bis A10:
| TRIM-Funktion in einer Schleife: |
| For i = 1 To 10 |
| Range("A" & i).Value = Trim(Range("A" & i).Value) |
| Next i |
Mit der TRIM-Funktion können Sie alle Leerzeichen aus Textzeichenfolgen in VBA Excel schnell und einfach entfernen. Beachten Sie jedoch, dass die TRIM-Funktion nur sichtbare Leerzeichen vom Anfang und Ende einer Zeile entfernt, wenn die Zeile also versteckte Leerzeichen oder Leerzeichen innerhalb einer Zeile enthält, bleiben diese unverändert.
Methode zwei: Verwenden der SUBSTITUTE-Funktion
Die zweite Möglichkeit, alle Leerzeichen in Excel mit VBA zu entfernen, besteht darin, die SUBSTITUTE-Funktion zu verwenden. Mit der SUBSTITUTE-Funktion können Sie alle Vorkommen einer bestimmten Zeichenfolge durch eine andere Zeichenfolge ersetzen.
Um alle Leerzeichen mithilfe der SUBSTITUTE-Funktion zu entfernen, müssen Sie die folgenden Schritte ausführen:
Schritt 1: Откройте Visueller Basiseditor, нажав Alt + F11.
Шаг 2: Вставьте следующий код:
Sub RemoveSpacesUsingSUBSTITUTE() Dim rng als Bereich Dim Zelle als Bereich für jeden ausgewählten Zufallsgenerator Für jede Zelle in rng If InStr(Zelle.Wert, " ") > 0 Dann Zelle.Wert = Anwendung.Arbeitsblattfunktion.Ersatz(Zelle.Wert, " ", "") Ende, wenn nächste Zelle Nächster Zufallsgenerator Ende Sub
Dieser Code ersetzt alle Leerzeichen durch das Fehlen eines Leerzeichens innerhalb des ausgewählten Zellbereichs.
Schritt 3: Drücken Sie F5 oder wählen Sie Run -> Run Sub/UserForm, um den Code auszuführen.
Nachdem dieser Code ausgeführt wurde, werden alle Leerzeichen im ausgewählten Zellbereich entfernt.
Anmerkung: Wenn Sie anstelle von Range(Selection) einen bestimmten Zellbereich bearbeiten möchten, ändern Sie die Auswahl in den gewünschten Bereich.
Methode drei: Anwenden der Formel LEN und REPLACE
Zunächst berechnen wir die Anzahl der Zeichen in jeder Zelle mit der Formel LEN. Ersetzen Sie dann mit der REPLACE-Funktion jedes Leerzeichen durch eine leere Zeichenfolge. Als Ergebnis erhalten wir Zellen ohne Leerzeichen.
Function RemoveSpaces(rng As Range) Dim cell As Range For Each cell In rng cell.Value = WorksheetFunction.Replace(cell.Value, 1, Len(cell.Value), "") Next cell End Function
In diesem Beispiel werden Leerzeichen durch eine leere Zeichenfolge in jeder Zelle des durch das Argument rng angegebenen Bereichs ersetzt. Die RemoveSpaces-Funktion wird aufgerufen, wobei der gewünschte Zellbereich als Argument übergeben wird.
Der Vorteil dieser Methode liegt in ihrer Einfachheit und Wirksamkeit. Es ermöglicht Ihnen, alle Leerzeichen in einer einzigen Operation aus Zellen zu entfernen, was es besonders nützlich macht, wenn Sie mit großen Datenmengen arbeiten.