Home |
Search |
Today's Posts |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Instead of this:
oSheet.Range(lstrStartCell, lstrEndCell) = lstraData You could use: with oSheet .range(.cells(1, lintPrevCol + 1), .cells(1,lintCurCol)) =lstraData end with (check to see if I got the right assignments!) jeff wrote: Thanks Dave But I needed to let you know where I was using it, see following code snippet... 'set previous and current columns and calculate Excel Column Alphas lintPrevCol = lintCurCol lintCurCol = lintCurCol + (Kount - lintConCol - 1) lstrStartCol = ConvertToLetter(lintPrevCol + 1) lstrEndCol = ConvertToLetter(lintCurCol) 'output Connection Headings lstrStartCell = lstrStartCol & "1" lstrEndCell = lstrEndCol & "1" oSheet.Range(lstrStartCell, lstrEndCell) = lstraFields 'output Connection Data lstrStartCell = lstrStartCol & lstrRow lstrEndCell = lstrEndCol & lstrRow oSheet.Range(lstrStartCell, lstrEndCell) = lstraData cheers jeff "Dave Peterson" wrote in message ... Excel is pretty flexible. You can use numbers instead of letter in expressions like: activesheet.cells(1,"A").value = "hi there" or activesheet.cells(1,1).value = "hi there" So you may not need to do the conversion at all. But if you must, this worked ok for me: Option Explicit Private Sub column() Dim col As Integer For col = 1 To 55 Debug.Print Str(col) & " " & ConvertToLetter(col) Next col End Sub Function ConvertToLetter(iCol As Integer) As String Dim myStr As String myStr = Worksheets(1).Cells(1, iCol).Address(False, False) myStr = Application.Substitute(myStr, "1", "") ConvertToLetter = myStr End Function jeff wrote: Hi gurus! I need to use column numbers in a loop and convert them to the column letters for populating cells. I initially wrote a conversion function but found it failing in transition from Z to AA and AZ to BA. So I scoured the net and got a couple of conversion functions...all of which failed including this one from Microsoft Knowledge base... Private Sub column() Dim col As Integer For col = 1 To 55 Debug.Print Str(col) & " " & ConvertToLetter(col) Next col End Sub Function ConvertToLetter(iCol As Integer) As String ' FROM MICROSOFT Dim iAlpha As Integer Dim iRemainder As Integer iAlpha = Int(iCol / 27) iRemainder = iCol - (iAlpha * 26) If iAlpha 0 Then ConvertToLetter = Chr(iAlpha + 64) End If If iRemainder 0 Then ConvertToLetter = ConvertToLetter & Chr(iRemainder + 64) End If End Function It correctly converts but fails around the transition points:- 52 AZ 53 A[ 54 BB . 78 BZ 79 B[ 80 B\ 81 CC As you can see it corrects itself as 54 is indeed BB and 81 is CC and as can be seen it progressively gets worse... Anyone any ideas on a foolproof conversion? I have to count up to 256 (IV) cheers Jeff -- Dave Peterson -- Dave Peterson |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Why are my spreadsheet columns numeric instead of alpha? | Excel Discussion (Misc queries) | |||
both columns and rows are numeric.want the columns to be alpha | Setting up and Configuration of Excel | |||
Need to indirectly reference columns 26 using A1 notation based on numeric column number- how to? | Excel Worksheet Functions | |||
HOW DO I CHANGE COLUMNS FROM NUMERIC TO ALPHA HEADINGS? | Excel Discussion (Misc queries) | |||
Columns are now numeric, not alpha. how to change back? | Excel Discussion (Misc queries) |