Wie man Text & Nummer in umge durch VBA in Microsoft Excel erhalten
_In Excel gibt es Zeiten, in denen der Text vollständig umgekehrt oder in der Reihenfolge mit VBA-Code angezeigt werden soll. Es kann verschiedene Anforderungen geben, z. B. das Extrahieren des Inhalts von umgekehrten Zellen, die Reihenfolge von umgekehrten Zellen usw.
In diesem Artikel lernen wir Folgendes:
-
Wie bekomme ich Reverse Cell Content?
-
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 der aktiven Zelle umkehren?
Wie bekomme ich Reverse Cell Content?
In Excel ist es erforderlich, den Text oder die Zahlen in Zellen umzukehren, z. „Englisch“ bis „hsilgne“ Es folgt die Momentaufnahme der Daten vor der Ausgabe:
Es folgt die Momentaufnahme der erforderlichen Ausgabe in Spalte B:
Um die obige Ausgabe zu erhalten, müssen Sie 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
Function 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 einige Codes haben, um die Lösung zu finden. Um alle Wörter in umgekehrter Reihenfolge zu erhalten, kopieren wir den folgenden Code und fügen ihn in das Modul
ein In Zelle C1 lautet die Formel = ReverseOrder1 (A1)
Function 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) To UBound(Val)) For Counter = LBound(Val) To UBound(Val) R(UBound(Val) - Counter) = Val(Counter) Next Counter ReverseOrder1 = Join(R, ", ") End Function
Werfen wir einen Blick auf den zweiten VBA-Code:
In Zelle D1 lautet die Formel = ReverseOrder2 (A1)
Function 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, ", ") End Function
Wie kann man die Spaltenreihenfolge umkehren?
Wenn Sie die Reihenfolge der Spaltendaten umkehren müssen, sollten Sie sich den folgenden Code genauer ansehen:
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
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 With Application.ScreenUpdating = True End Sub
===
Wie bekomme ich umgekehrte Zahlen nur aus Text?
Beispiel: „excel (123) tip“ ist der Zelleninhalt. Ausgabe erforderlich: „excel (321) tip“
In Excel gibt es mehrere Möglichkeiten, um die gleiche Ausgabe zu erhalten. Dies gilt auch für die Suche nach einer Lösung mit VBA-UDFs. In diesem Beispiel werden 5 verschiedene Möglichkeiten gezeigt.
Kopieren Sie die folgenden Codes und fügen Sie sie in das Standardmodul ein:
In Zelle B2 lautet die Formel = ReverseNumber1 (A2)
Function 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 Function 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 = Replace(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
Wir können die anderen 4 Codes mit der folgenden Formel testen:
{leer} 1. = ReverseNumber2 (A2)
{leer} 2. = ReverseNumber3 (A2)
{leer} 3. = ReverseNumber4 (A2)
{leer} 4. = ReverseNumber5 (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 der aktiven Zelle umkehren?
Wenn Sie möchten, dass ein Makro nur auf der aktiven Zelle ausgeführt wird, kehren Sie den Inhalt um. Dieser Code wird nicht in einer Zelle ausgeführt, die eine Formel enthält.
Wir werden den folgenden Code verwenden:
Befindet sich der Cursor in Zelle A1, die „exceltip“ enthält, konvertiert das obige Makro ihn in „pitlecxe“.
Sub Reverse_Cell_Contents() 'this macro will run only on activecell' --- Comment If Not 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
Fazit: Wir können so viele UDFs für eine einzelne Lösung in Microsoft Excel haben. Diese UDF funktioniert von 2003 bis 2013.
Wenn Ihnen unsere Blogs gefallen haben, teilen Sie sie Ihren Freunden auf Facebook mit. Und Sie können uns auch auf Twitter und Facebook folgen.
Wir würden gerne von Ihnen hören, uns mitteilen, wie wir unsere Arbeit verbessern, ergänzen oder innovieren und für Sie verbessern können. Schreiben Sie uns an [email protected]