본문 바로가기
Range object

[Range 개체] Column속성

2023. 7. 7.

지정된 범위의 첫 번째 영역에서 첫 번째 열의 번호를 반환합니다.읽기 전용 속성입니다.

간단한 샘플코드입니다.

Sub GetColumnNumber()

    Dim rng As Range
    Dim columnNumber As Long
    Set rng = Range("A1:C5")
    
    columnNumber = rng.Column

    MsgBox "Column Number: " & columnNumber
    
End Sub

아래 코드는 지정된 범위를 반복하면서 각 셀의 열 번호를 출력합니다.

Sub IterateColumns()

    Dim rng As Range
    Dim cell As Range
    Set rng = Range("A1:D5")
    
    For Each cell In rng
        Debug.Print "Cell: " & cell.Address & ", Column Number: " & cell.Column
    Next cell
    
End Sub

열 번호가 짝수인 경우에만 해당 셀의 값을 출력합니다.

Sub ProcessEvenColumns()

    Dim rng As Range
    Dim cell As Range
    Set rng = Range("A1:D5")
    
    For Each cell In rng
    
        If cell.Column Mod 2 = 0 Then
            Debug.Print "Cell: " & cell.Address & ", Value: " & cell.Value
        End If
        
    Next cell
    
End Sub

데이터가 입력된 마지막 셀을 찾는 코드입니다.

Sub GetRealLastCellWithData()

    Dim lRealLastRow As Long
    Dim lRealLastColumn As Long
    
    On Error Resume Next
    
    ' xlFormulas 옵션을 사용하여 데이터가 있는 마지막 행 찾기 (아래 방향 검색)
    lRealLastRow = Cells.Find(What:="*", After:=Cells(1, 1), LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    
    ' xlFormulas 옵션을 사용하여 데이터가 있는 마지막 열 찾기 (오른쪽 방향 검색)
    lRealLastColumn = Cells.Find(What:="*", After:=Cells(1, 1), LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
    
    On Error GoTo 0
    
    ' 데이터가 있는 마지막 셀 선택
    Cells(lRealLastRow, lRealLastColumn).Select
    
End Sub

xlPrevious를 사용하는 이유는 역순으로 검색하기 위해서 입니다.

'Range object' 카테고리의 다른 글

[Range 개체] EntireColumn속성  (0) 2023.07.09
[Range 개체] Columns속성  (0) 2023.07.08
[Range 개체] EntireRow속성  (0) 2023.07.06
[Range 개체] Rows속성  (0) 2023.07.05
[Range 개체] Row속성  (0) 2023.07.05