가능한 복제를 알파하기 :
VBA function to convert column number to letter?변환 열 숫자 값
나는 마지막으로 사용 된 열을 표시하는 MSGBOX를 표시해야합니다.
지금 바로 숫자 열이 표시되지만 해당 알파 문자로 변환 할 수 있습니까?
Ex. 열 5 = 열 E.
감사
가능한 복제를 알파하기 :
VBA function to convert column number to letter?변환 열 숫자 값
나는 마지막으로 사용 된 열을 표시하는 MSGBOX를 표시해야합니다.
지금 바로 숫자 열이 표시되지만 해당 알파 문자로 변환 할 수 있습니까?
Ex. 열 5 = 열 E.
감사
I 2 가지 방법을 얻을 수 있었다.
Function NumToLetter(q As Long) As String
Dim Add As String
'Ignore error so it fails on an invalid cell
On Error Resume Next
Add = Cells(1, q).Address
If Len(Add) Then
NumToLetter = Mid(Add, 2, InStr(2, Add, "$") - 2)
Else
NumToLetter = "Invalid Cell"
End If
End Function
다른 용도 기지 (26)과는 long
의 최대 값 BU 제한됩니다 :
Function Num2Letter(q As Long) As String
Dim r As Long
While q > 0
r = q Mod 26
If r = 0 Then r = 26 ' needed for column Z
Num2Letter = Chr(64 + r) & Num2Letter
q = Int(q/26) + (r = 26) ' fix for column Z
Wend
End Function
테스트가 잘못된 열을 사용하는 경우 실패 할 수 있도록 하나는, 엑셀 Cells
에 의존 메시지 박스와 이러한 값 :
msgbox "Column 2445 is " & NumToLetter(2445) & " or " Num2Letter(2445)
열 2445 CPA 또는 CPA이다
msgbox "Column 42445 is " & NumToLetter(42445) & " or " Num2Letter(42445)
열 42445 잘못된 셀 또는 BJTM
msgbox "Column -1 is " & NumToLetter(-1) & " or " Num2Letter(-1)
열 -1 잘못된 셀 또는
감사합니다. 그들은 내가해야 할 일을 정확하게했습니다. – Atwp67
(숀 체셔에 의해 코멘트에서 지적)이 ZZ 통해 열 A에 대해 작동합니다
Function ColLetter(ColNumber As Integer) As String
ColLetter = Left(Cells(1, ColNumber).Address(False, False), 1 - (ColNumber > 26))
End Function
사용하려면 : MsgBox ColLetter(oRangeObject.Column)
이것은 703 컬럼까지 작동하고'AAA'와 함께하지만'AA '로 자릅니다. – SeanC
아 맞습니다. 나는 거기에 과거가 필요 없다 - 당신의 더 완전한 대답에 +1. –
숀은, 기능에 대한 감사합니다. 그들은 내가해야 할 일을 정확하게했습니다. – Atwp67