Wie das erste Wort in Microsoft Excel erhalten
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.
Sie finden die Originalfrage http://www.excelforum.com/excel-programming-vba-macros/1093228-keep-first-word-in-each-line-separate-by-semicolon-and-remove-everything-else .html [hier]
Es folgt eine Momentaufnahme des Eingabetextes (vor dem Blatt)
===
Es folgt eine Momentaufnahme des Eingabetextes (After Sheet) in Spalte A & erfordert die Ausgabe in Spalte B; Siehe folgenden Schnappschuss:
===
===
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
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
===
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)
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
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.
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]