Wenn Sie auf eine Situation stoßen, in der Sie nur das erste Wort in jeder Zeile einer Zelle und nicht das gesamte Zeichen benötigen, müssen Sie diesen Artikel lesen. Das folgende Tutorial hilft Ihnen beim Abrufen nur des ersten Wortes über den VBA-Code in Excel.

In diesem Artikel konzentrieren wir uns darauf, wie das erste Wort nur in jeder Zeile einer Zelle durch Semikolon über Makrocodes getrennt bleibt.

Frage: Die Daten, in denen ich arbeite, haben manchmal mehrere Zeilen in jeder Zelle und ich möchte nur das erste Wort extrahieren.

Es folgt eine Momentaufnahme des Eingabetextes (vor dem Blatt)

img1

===

Es folgt eine Momentaufnahme des Eingabetextes (After Sheet) in Spalte A & erfordert die Ausgabe in Spalte B; Siehe folgenden Schnappschuss:

===

img2

===

Um den Code zu erhalten; Führen Sie die folgenden Schritte aus, um den VB-Editor zu starten. Klicken Sie auf die Registerkarte Entwickler. Wählen Sie in der Gruppe Code die Option Visual Basic

img3

aus * Kopieren Sie den folgenden Code in das Standardmodul

Function FirstWordOnly(rng As Range)

Dim Arr() As Variant

Dim Count As Integer

Dim i As Integer



Count = Len(rng) - Len(Replace(rng, Chr(10), ""))



If Count > 0 Then

ReDim Arr(0 To Count)

For i = 0 To Count

If i = 0 Then

Arr(i) = Left(rng, InStr(1, rng, " ") - 1)

ElseIf j = 0 Then

j = InStr(1, rng, Chr(10))

Arr(i) = Mid(rng, j + 1, InStr(j, rng, " ") - j)

Else

j = InStr(j + 1, rng, Chr(10))

Arr(i) = Mid(rng, j + 1, InStr(j, rng, " ") - j)

End If

Next



FirstWordOnly = Join(Arr, "; ")

Else

If InStr(1, rng, " ") > 0 Then

FirstWordOnly = Left(rng, InStr(1, rng, " "))

Else

FirstWordOnly = rng

End If



End If



End Function

img4

===

Jetzt ist der VBA-Code einsatzbereit. Wir werden die neu erstellte benutzerdefinierte Funktion verwenden, d. h. „FirstWordOnly“ in Before Sheet.

Um die Ausgabe mit UDF in Zelle B2 zu erhalten, lautet die Formel = FirstWordOnly (A2)

img5

Code Erläuterung:

Im obigen Code haben wir die Funktionen COUNT, LEN, REPLACE, IF, INSTR, MID, CHR, LEFT und JOIN VBA verwendet.

‘Len (rng)’; Dadurch wird die Länge der Zelle überprüft, auf die wir uns beziehen: „Ersetzen (rng, Chr (10),“ „)“. Der Code überprüft den Chr (10), d. H. Den Zeilenumbruch in jeder Zeile und ersetzt ihn dann durch ein Anführungszeichen (nichts)

„Count = Len (rng) – Len (Replace (rng, Chr (10),“ „))“; Count speichert die Längenunterschiede jeder Zeile nach dem Ersetzen des Zeilenumbruchs. If Count> 0; Dies prüft, ob die Länge von Count größer als Null ist und ob sie gleich Null ist, d. h. die Zelle leer ist, dann führt die IF-Bedingung den Code nicht aus. Um dies zu überprüfen, können Sie = FirstWordOnly (A5) in Zelle B5 verwenden und es wird 0

img6

zurückgegeben Wenn die Zelle nicht leer ist, wird die For-Schleife mit der IF-Bedingung verwendet, und mit der LEFT-Funktion wird das erste Wort abgerufen. Die JOIN-Funktion fügt am Ende ein Semikolon hinzu, wenn jede Zelle mehrere Zeilen enthält. Schlussfolgerung: Mit UDF können wir alles entfernen in jeder Zeile der Zelle außer dem ersten Wort durch VBA. Diese Funktion funktioniert in allen Versionen von alt bis neu, d. H. Microsoft Excel 2003, Microsoft Excel 2007, Microsoft Excel 2010, Microsoft Excel 2013.

image 48

Wenn Ihnen unsere Blogs gefallen haben, teilen Sie sie Ihren Freunden auf Facebook mit. Sie können uns auch auf Twitter und Facebook folgen.

Wir würden gerne von Ihnen hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern, ergänzen oder innovieren und für Sie verbessern können. Schreiben Sie uns an [email protected]