Reversing cell values
how do I reverse the values of a cell (eg. 1234 becomes 4321)???
|
"ac512" wrote in message
... 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" wrote in message ... 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)??? |
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" wrote in message ... 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" wrote in message ... 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 |
All times are GMT +1. The time now is 06:24 PM. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com