열 이름의 Excel 열 번호
Excel 매크로를 사용하여 Excel의 열 이름에서 열 번호를 가져오는 방법은 무엇입니까?
당신은 이걸 원하는 것 같아요?
열 이름에서 열 번호로
Sub Sample()
ColName = "C"
Debug.Print Range(ColName & 1).Column
End Sub
편집: 원하는 것의 반대도 포함합니다.
열 번호를 열 이름으로
Sub Sample()
ColNo = 3
Debug.Print Split(Cells(, ColNo).Address, "$")(1)
End Sub
따르다
만약 내가 맨 위에 급여 필드가 있다면, 내가 지금 셀 C(1,1)에서 파일을 변경하고 급여 열을 다른 곳으로 이동하면 F(1,1)라고 말하면 나는 코드를 수정해야 할 것이다. 그래서 나는 코드가 급여를 확인하고 열 번호를 찾은 다음 그 열 번호에 따라 나머지 작업을 수행하기를 원합니다.
이러한 경우에는 다음을 사용할 것을 권장합니다..FIND
아래 예제 참조
Option Explicit
Sub Sample()
Dim strSearch As String
Dim aCell As Range
strSearch = "Salary"
Set aCell = Sheet1.Rows(1).Find(What:=strSearch, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not aCell Is Nothing Then
MsgBox "Value Found in Cell " & aCell.Address & _
" and the Cell Column Number is " & aCell.Column
End If
End Sub
스냅샷
VBA 솔루션을 찾는 동안 공식 솔루션을 찾을 때 구글에서 가장 좋은 결과를 얻었습니다. 따라서 저처럼 여기에 오신 모든 분들을 위해 이것을 추가하겠습니다.
열 문자에서 숫자를 반환하는 Excel 공식(@A에서).위의 Klomp 설명)에서 셀 A1은 열 문자를 유지합니다.
= 열(간접(A1&"1"))
간접 함수는 휘발성이므로 셀이 변경될 때마다 다시 계산되므로 이러한 셀이 많으면 워크북 속도가 느려질 수 있습니다.65에서 'A'로 시작하는 ASCII 문자의 숫자를 제공하는 '코드' 기능과 같은 다른 솔루션을 생각해 보십시오.이 작업을 수행하려면 열 이름에 숫자가 몇 개 있는지 확인하고 'A', 'BB' 또는 'CCC'에 따라 결과를 변경해야 합니다.
숫자에서 열 문자를 반환하는 Excel 공식(이 이전 질문에서 열 번호(예: 127)를 Excel 열로 변환하는 방법) AA), @Ian)이 응답합니다. 여기서 A1은 열 번호를 보유합니다.
= 할당(주소(1,A1,4),"1",")
이 두 가지 방법은 열 이름에 있는 문자 수에 관계없이 모두 작동합니다.
이것이 다른 사람에게 도움이 되기를 바랍니다.
이 모든 것을 건너뛰고 데이터를 테이블에 저장할 수 있습니다.그런 다음 표와 머리글을 참조하면 완전히 동적이 될 것입니다.나는 이것이 3년 전의 것이라는 것을 알지만 누군가는 여전히 이것이 유용하다고 생각할지도 모릅니다.
코드 예제:
Activesheet.Range("TableName[ColumnName]").Copy
다음을 사용할 수도 있습니다.
activesheet.listobjects("TableName[ColumnName]").Copy
워크시트 공식에서도 이 참조 시스템을 사용할 수 있습니다.굉장히 역동적입니다.
이것이 도움이 되길 바랍니다!
즉시 창에서 다음 코드 작성 및 실행
?cells(,"type the column name here").column
를 들어 를들면입니다.?cells(,"BYL").column
2014년으로 돌아갑니다.코드는 대소문자를 구분하지 않으므로 다음과 같이 기록할 수 있습니다.?cells(,"byl").column
출력은 동일하게 유지됩니다.
아나스타시야의 대답을 근거로.이것이 가장 짧은 vba 명령이라고 생각합니다.
Option Explicit
Sub Sample()
Dim sColumnLetter as String
Dim iColumnNumber as Integer
sColumnLetter = "C"
iColumnNumber = Columns(sColumnLetter).Column
MsgBox "The column number is " & iColumnNumber
End Sub
이활성화되어 입니다. " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "Columns
는 와동합다니등다에 합니다.ActiveSheet.Columns
. ;)
Excel은 결합된 셀을 수용할 수 있기 때문에 순수한 VBA 솔루션은 다음과 같습니다.
Public Function GetIndexForColumn(Column As String) As Long
Dim astrColumn() As String
Dim Result As Long
Dim i As Integer
Dim n As Integer
Column = UCase(Column)
ReDim astrColumn(Len(Column) - 1)
For i = 0 To (Len(Column) - 1)
astrColumn(i) = Mid(Column, (i + 1), 1)
Next
n = 1
For i = UBound(astrColumn) To 0 Step -1
Result = (Result + ((Asc(astrColumn(i)) - 64) * n))
n = (n * 26)
Next
GetIndexForColumn = Result
End Function
기본적으로 이 함수는 알파벳 문자(A = 1, B = 2, ...)만 사용한다는 점을 제외하고는 Hex to Dec 함수와 동일합니다.가장 오른쪽에 있는 문자는 단일 문자로 카운트되며, 왼쪽에 있는 각 문자는 오른쪽 문자의 26배로 카운트됩니다(AA = 27 [1 + 26], AAA = 703 [1 + 26 + 676]).UCase()를 사용하면 이 함수는 대소문자를 구분하지 않습니다.
에 열 가장 열번호 를 얻 는 가 간 방 같 다 습 니 다 과 음 은 법 한 단 장 다 니 같 습 ▁in : ▁number 열 과 ▁is ▁column 다 ▁to 음
Sub Sample() ColName = ActiveCell.Column MsgBox ColName End Sub
언급URL : https://stackoverflow.com/questions/10106465/excel-column-number-from-column-name
'source' 카테고리의 다른 글
Git를 사용하여 전체 파일에서 '내 것' 또는 '내 것'을 수락하는 간단한 도구 (0) | 2023.05.29 |
---|---|
ByVal/ByRef를 더 이상 표시할 필요가 없는 이유는 무엇입니까? (0) | 2023.05.29 |
기트풀은 어떤 경우에 해로울 수 있습니까? (0) | 2023.05.29 |
nth jQuery 요소를 가져오는 방법 (0) | 2023.05.29 |
C#을 사용하여 URL 매개 변수를 디코딩하려면 어떻게 해야 합니까? (0) | 2023.05.29 |