Excel에서는 텍스트를 완전히 뒤집거나 VBA 코드로 순서를 바꾸고 싶을 때가 있습니다. 역방향 셀 내용 추출, 역방향 셀 순서 등과 같은 다양한 요구 사항이있을 수 있습니다 .

이 기사에서 우리는 다음을 배울 것입니다 :

  • 역방향 셀 내용을 얻는 방법?

  • 셀에서 모든 단어를 역순으로 가져 오는 방법은 무엇입니까?

  • 열 순서를 바꾸는 방법은 무엇입니까?

  • 텍스트에서만 역 번호를 얻는 방법은 무엇입니까?

  • activecell의 세포 내용을 반전하는 방법은 무엇입니까?

역 셀 내용을 얻는 방법?

Excel에서는 셀의 텍스트 또는 숫자를 반대로해야합니다. “english”- “hsilgne”다음은 출력 전 데이터 스냅 샷입니다.

img1

다음은 B 열에있는 require 출력의 스냅 샷입니다.

img2

위의 출력을 얻으려면 아래 단계에 따라 VB 편집기를 시작해야합니다. 개발자 탭을 클릭합니다. 코드 그룹에서 Visual Basic을 선택합니다.

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

===

B1 셀에서 수식은 = CompleteReverse (A1, TRUE)

img5

셀에서 모든 단어를 역순으로 가져 오는 방법은 무엇입니까?

해결책을 찾기위한 몇 가지 코드가 있습니다. 모든 단어를 역순으로 가져 오려면 다음 코드를 복사하여

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

모듈에 붙여 넣습니다. C1 셀에서 수식은 = ReverseOrder1 (A1)

img7

두 번째 VBA 코드를 살펴 보겠습니다.

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

D1 셀에서 수식은 = ReverseOrder2 (A1)

img9

열 순서를 바꾸는 방법?

열 데이터의 순서를 반대로해야하는 경우 아래 코드를 자세히 살펴 봐야합니다.

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

위 코드는 sheet1의 A 열에있는 데이터를 확인한 다음 시트 2의 순서를 반대로합니다. 아래 이미지를 참조하십시오

Img11

Img12

===

텍스트에서만 역 번호를 얻는 방법?

예 : “excel (123) tip”은 셀 내용입니다. 출력 필요 : “excel (321) tip”

Img13

Excel에서는 동일한 출력을 얻는 여러 가지 방법이있을 수 있으며 VBA UDF를 사용하여 솔루션을 찾는 것도 동일합니다. 이 예에서는 5 가지 방법을 보여 드리겠습니다.

다음 코드를 표준 모듈에 복사하여 붙여 넣으십시오.

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

B2 셀에서 수식은 = ReverseNumber1 (A2)

Img16

다음 공식을 사용하여 다른 4 개의 코드를 테스트 할 수 있습니다.

{비어 있음} 1. = ReverseNumber2 (A2)

{비어 있음} 2. = ReverseNumber3 (A2)

{비어 있음} 3. = ReverseNumber4 (A2)

{비어 있음} 4. = ReverseNumber5 (A2)

위의 5 개 매크로 코드는 모두 동일한 출력을 제공합니다. 하나; 가장 편한 코드를 채택 할 수 있습니다.

activecell의 셀 내용을 반전하는 방법?

매크로가 activecell에서만 실행되도록하고 내용을 반대로하려면. 이 코드는 수식이 포함 된 셀에서는 실행되지 않습니다.

다음 코드를 사용합니다.

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

커서가 “exceltip”을 포함하는 A1 셀에 있으면 위의 매크로가이를 “pitlecxe”로 변환합니다.

결론 : Microsoft Excel에서 단일 솔루션에 대해 많은 UDF를 가질 수 있습니다. 이 UDF는 2003 버전부터 2013 년까지 작동합니다.

image 29

블로그가 마음에 들면 Facebook에서 친구들과 공유하세요. 또한 Twitter와 Facebook에서 팔로우 할 수도 있습니다.

우리는 여러분의 의견을 듣고 싶습니다. 우리가 작업을 개선, 보완 또는 혁신하고 여러분을 위해 더 잘 만들 수있는 방법을 알려주십시오. [email protected]_로 문의 해주세요