_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:

img1

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

img2

aus * Kopieren Sie den folgenden Code in das Standardmodul

img3

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

img4

===

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

img5

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

img6

Werfen wir einen Blick auf den zweiten VBA-Code:

img7

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

img8

img9

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

img10

Img11

Img12

===

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.

Img13

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

Img14

Img15

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

Img16

{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

Img17

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.

image 29

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]