This function will convert an integer to a column letter, so if you are
looping through columns, say 1...100 you can do the conversion that way:
' e.g. GetColLetter(100)
Function GetColLetter(ByVal iCol As Integer) As String
Dim strAddr As String
Dim iPos As Integer
strAddr = Mid(ThisWorkbook.Worksheets(1).Cells(1, iCol).Address, 2)
iPos = InStr(strAddr, "$")
GetColLetter = Left$(strAddr, iPos - 1)
End Function
Or modify the range directly
Range("M14:M19")
becomes
Range(Cells(14,"M"),Cells(19,"M"))
which is the equivalent of
Range(Cells(14,13),Cells(19,13))
e.g. to loop through 100 columns
Dim y as Integer, rng As Range
For y = 1 to 100
Set rng = Range(Cells(14,x),Cells(19,x))
Next
--
Tim Zych
www.higherdata.com
Compare data in Excel and find differences with Workbook Compare
A free, powerful, flexible Excel utility
Now with Table Compare for quick table comparisons
"LunaMoon" <(E-Mail Removed)> wrote in message
news:391f0fd9-1254-4f5a-aee2-(E-Mail Removed)...
> Hi all,
>
> I recorded a very long VBA macro in Excel and the index of ranges is
> in letter format,
>
> for example, "M14:M19", etc.
>
> Now I am going to run this macro programmatically and automatically in
> a for loop and expand it from the left to the right so I want to
> change the "M" in the above example automatically.
>
> But after 26 letters, there will be AA, AB, etc. which is really hard
> to program.
>
> Is there a way to adapt the recorded macro (by changing as little as
> possible) to more than 26 letters.
>
> I really want to change as little as possible because I spent lots of
> time recording this macro and it is really long and it has reference
> to addresses such as above everywhere... it's going to be a total mess
> if I try to change too much of its addressing...
>
> Thanks!