how do I reverse the values of a cell (eg. 1234 becomes 4321)???
how do I reverse the values of a cell (eg. 1234 becomes 4321)???
"ac512" <ac512@discussions.microsoft.com> wrote in message
news:2EE3D756-09D5-4232-957E-BDC10728E31E@microsoft.com...
> how do I reverse the values of a cell (eg. 1234 becomes 4321)???
Try this UDF (from John Walkenbach's site) in a plain VBA module:
Function Reverse(InString) As String
'UDF to reverse string - John W
Dim i As Integer
Dim StringLength As Integer
Reverse = ""
StringLength = Len(InString)
For i = StringLength To 1 Step -1
Reverse = Reverse & Mid(InString, i, 1)
Next i
End Function
HTH,
Andy
And if you're using xl2k or higher, you can use a builtin VBA function:
Option Explicit
Function Reverse2(InString) As String
Reverse2 = StrReverse(InString)
End Function
Andy Brown wrote:
>
> "ac512" <ac512@discussions.microsoft.com> wrote in message
> news:2EE3D756-09D5-4232-957E-BDC10728E31E@microsoft.com...
> > how do I reverse the values of a cell (eg. 1234 becomes 4321)???
>
> Try this UDF (from John Walkenbach's site) in a plain VBA module:
>
> Function Reverse(InString) As String
> 'UDF to reverse string - John W
> Dim i As Integer
> Dim StringLength As Integer
> Reverse = ""
> StringLength = Len(InString)
> For i = StringLength To 1 Step -1
> Reverse = Reverse & Mid(InString, i, 1)
> Next i
> End Function
>
> HTH,
> Andy
--
Dave Peterson
this works perfectly, except for the fact that if a number ends in one or
more zeros, the zeros are dropped off
"Andy Brown" wrote:
> "ac512" <ac512@discussions.microsoft.com> wrote in message
> news:2EE3D756-09D5-4232-957E-BDC10728E31E@microsoft.com...
> > how do I reverse the values of a cell (eg. 1234 becomes 4321)???
>
> Try this UDF (from John Walkenbach's site) in a plain VBA module:
>
> Function Reverse(InString) As String
> 'UDF to reverse string - John W
> Dim i As Integer
> Dim StringLength As Integer
> Reverse = ""
> StringLength = Len(InString)
> For i = StringLength To 1 Step -1
> Reverse = Reverse & Mid(InString, i, 1)
> Next i
> End Function
>
> HTH,
> Andy
>
>
>
That's odd. Both functions kept the leading zeros for me. (xl2003)
That's when I called it from a worksheet cell:
=reverse(a1)
or
=reverse2(a1)
But if I called it from a sub and populated another cell, I lost the leading
0's.
Sub testme()
Range("B1").Value = Reverse(Range("a1"))
End Sub
But you could do this:
Sub testme2()
Range("B1").Value = "'" & Reverse(Range("a1"))
End Sub
or even:
Sub testme3()
With Range("B1")
.NumberFormat = "@"
.Value = Reverse(Range("a1"))
End With
End Sub
ac512 wrote:
>
> this works perfectly, except for the fact that if a number ends in one or
> more zeros, the zeros are dropped off
>
> "Andy Brown" wrote:
>
> > "ac512" <ac512@discussions.microsoft.com> wrote in message
> > news:2EE3D756-09D5-4232-957E-BDC10728E31E@microsoft.com...
> > > how do I reverse the values of a cell (eg. 1234 becomes 4321)???
> >
> > Try this UDF (from John Walkenbach's site) in a plain VBA module:
> >
> > Function Reverse(InString) As String
> > 'UDF to reverse string - John W
> > Dim i As Integer
> > Dim StringLength As Integer
> > Reverse = ""
> > StringLength = Len(InString)
> > For i = StringLength To 1 Step -1
> > Reverse = Reverse & Mid(InString, i, 1)
> > Next i
> > End Function
> >
> > HTH,
> > Andy
> >
> >
> >
--
Dave Peterson
Thank you both very much for your assistance!
Much appreciated
"ac512" wrote:
> how do I reverse the values of a cell (eg. 1234 becomes 4321)???
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks