So erhalten Sie Text und Zahlen in umgekehrter Richtung über VBA in Microsoft Excel

Anonim

In Excel gibt es Zeiten, in denen wir den Text vollständig oder ihre Reihenfolge mit VBA-Code umkehren möchten. Es kann verschiedene Anforderungen geben, wie das Extrahieren des umgekehrten Zelleninhalts, die umgekehrte Zellenreihenfolge usw.

In diesem Artikel lernen wir Folgendes:

  • Wie erhalte ich einen umgekehrten Zellinhalt?
  • Wie bekomme ich alle Wörter in umgekehrter Reihenfolge aus einer Zelle?
  • Wie kann man die Spaltenreihenfolge umkehren?
  • Wie bekomme ich umgekehrte Zahlen nur aus Text?
  • Wie kann man den Zellinhalt von activecell umkehren?

Wie erhalte ich einen umgekehrten Zellinhalt?

In Excel ist es erforderlich, den Text oder die Zahlen in Zellen umzukehren, z. „englisch“ nach „hsilgne“

Es folgt der Snapshot der Daten vor der Ausgabe:

Im Folgenden sehen Sie die Momentaufnahme der erforderlichen Ausgabe in Spalte B:

Um die obige Ausgabe zu erhalten, müssen wir die folgenden Schritte ausführen, 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
 Funktion CompleteReverse(rCell As Range, optional IsText As Boolean) Dim i As Integer Dim StrNewTxt As String Dim strOld As String strOld = Trim(rCell) For i = 1 To Len(strOld) StrNewTxt = Mid(strOld, i, 1) & StrNewTxt Next i If IsText = False Then CompleteReverse = CLng(StrNewTxt) Else CompleteReverse = StrNewTxt End If End Function 

  • In Zelle B1 lautet die Formel
  • =CompleteReverse(A1,TRUE)

Wie bekomme ich alle Wörter in umgekehrter Reihenfolge aus einer Zelle?

Wir werden ein paar Codes haben, um die Lösung zu finden. Um alle Wörter in vollständig umgekehrter Reihenfolge zu erhalten, kopieren wir den folgenden Code in das Modul

 Funktion ReverseOrder1(Rng As Range) Dim Val As Variant, Counter As Integer, R() As Variant Val = Split(Application.WorksheetFunction.Substitute(Rng.Value, " ", ""), ",") ReDim R(LBound (Val) Zu UBound(Val)) For Counter = LBound(Val) To UBound(Val) R(UBound(Val) - Counter) = Val(Counter) Nächster Zähler ReverseOrder1 = Join(R, ", ") End Function 

  • In Zelle C1 lautet die Formel
  • =Umgekehrte Reihenfolge1(A1)

Schauen wir uns den zweiten VBA-Code an:

 Funktion ReverseOrder2(Rng As Range) As String Dim Counter As Long, R() As String, temp As String R = Split(Replace(Rng.Value2, " ", ""), ",") For Counter = LBound(R ) To (UBound(R) - 1) \ 2 temp = R(UBound(R) - Counter) R(UBound(R) - Counter) = R(Counter) R(Counter) = temp Next Counter ReverseOrder2 = Join(R , ", ") Funktion beenden 

  • In Zelle D1 lautet die Formel
  • =Umgekehrte Reihenfolge2(A1)

Wie kann man die Spaltenreihenfolge umkehren?

Falls Sie die Reihenfolge der Spaltendaten umkehren müssen, sollten Sie sich den folgenden Code genauer ansehen:

 Sub ReverseColumnOrder() Dim wBase As Worksheet, wResult As Worksheet, i As Long, x As Long Set wBase = Sheets("Sheet1") Set wResult = Sheets("Sheet2") Application.ScreenUpdating = False With wBase For i = .Range ("A1").CurrentRegion.Rows.Count To 1 Step -1 x = x + 1 .Range("A1").CurrentRegion.Rows(i).Copy wResult.Range("A" & x) Next i End Mit Application.ScreenUpdating = True End Sub 

Der obige Code überprüft die Daten in Spalte A in Blatt 1 und kehrt dann die Reihenfolge in Blatt 2 um. Siehe Bild unten

Wie bekomme ich umgekehrte Zahlen nur aus Text?

Beispiel: „Excel (123) tip“ ist der Zellinhalt

Ausgabe erforderlich: „Excel (321) Tipp“

In Excel kann es mehrere Möglichkeiten geben, dieselbe Ausgabe zu erzielen und eine Lösung mit VBA-UDFs zu finden. Für dieses Beispiel zeigen wir 5 verschiedene Möglichkeiten.

Kopieren Sie die folgenden Codes und fügen Sie sie in das Standardmodul ein:

 Funktion ReverseNumber1(v As Variant) As String Dim iSt As Integer, iEnd As Integer, sNum As String, sTemp As String iSt = InStr(v, "(") iEnd = InStr(v, ")") If iSt = 0 Or iEnd = 0 Then ReverseNumber1 = v: Exit Function sNum = Mid(v, iSt + 1, iEnd - iSt - 1) For i = Len(sNum) To 1 Step -1 sTemp = sTemp & Mid(sNum, i, 1) Next i ReverseNumber1 = Left(v, iSt) & sTemp & Mid(v, iEnd, 5 5) End Function Funktion ReverseNumber2(s As String) As String Dim i&, t$, ln& t = s: ln = InStr(s , ")") - 1 For i = InStr(s, "(") + 1 To InStr(s, ")") - 1 Mid(t, i, 1) = Mid(s, ln, 1) ln = ln - 1 Next ReverseNumber2 = t End Function Function ReverseNumber3(c00) c01 = Split(Split(c00, ")")(0), "(")(1) ReverseNumber3 = Ersetzen(c00, "(" & c01 & " )", "(" & StrReverse(c01) & ")") End Function Function ReverseNumber4(c00) ReverseNumber4 = Left(c00, InStr(c00, "(")) & StrReverse(Mid(Left(c00, _ InStr( c00, ")") - 1), InStr(c00, "(") + 1)) & Mid(c00, InStr(c00, ")")) End Function Function ReverseNumber5(s As String ) Dim m As Object With CreateObject("VBScript.Regexp") .Global = True .Pattern = "(\D*)(\d*)" For Each m In .Execute(s) ReverseNumber5 = ReverseNumber5 & m.submatches( 0) & StrReverse(m.submatches(1)) Next End With Set m = Nothing End Function 

  • In Zelle B2 lautet die Formel
  • =UmgekehrteNummer1(A2)

Wir können die anderen 4 Codes mit der folgenden Formel testen:

1. =UmgekehrteNummer2(A2)

2. =UmgekehrteNummer3(A2)

3. =UmgekehrteNummer4(A2)

4. =UmgekehrteNummer5(A2)

Alle oben genannten 5 Makrocodes liefern die gleiche Ausgabe; jedoch; man kann den Code übernehmen, mit dem sie sich am wohlsten fühlen.

Wie kann man den Zellinhalt von activecell umkehren?

Falls Sie möchten, dass ein Makro nur auf Activecell ausgeführt wird und dann den Inhalt umkehrt. Dieser Code wird nicht auf Zellen ausgeführt, die Formeln enthalten.

Wir werden den folgenden Code verwenden:

 Sub Reverse_Cell_Contents() 'dieses Makro wird nur auf Activecell ausgeführt' --- Kommentar Wenn nicht ActiveCell.HasFormula Then sRaw = ActiveCell.Text sNew = "" For j = 1 To Len(sRaw) sNew = Mid(sRaw, j, 1 ) + sNew Next j ActiveCell.Value = sNew End If End Sub 

Wenn sich der Cursor auf Zelle A1 befindet, die "exceltip" enthält, wird sie durch das obige Makro in "pitlecxe" umgewandelt.

Abschluss: Wir können beliebig viele UDFs für eine einzelne Lösung in Microsoft Excel verwenden. Diese UDF wird von der Version 2003 bis 2013 funktionieren.

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

Wir würden uns freuen, von Ihnen zu hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern, ergänzen oder erneuern und für Sie verbessern können. Schreiben Sie uns an E-Mail-Site