본문 바로가기
Range object

[Range 개체] Columns속성

2023. 7. 8.

지정된 범위의 열을 나타내는 Range 개체를 반환합니다 . 읽기 전용 속성입니다.

단일 열을 반환하려면 Item 속성을 사용하거나 괄호 안에 인덱스를 포함합니다.

Range("A1:C10").Columns(3).select

Range("A1:C10").Columns.Item(3).select

반환된 범위가 지정된 범위를 벗어날 수 있습니다.

Range("A1:B10").Columns(5).Select

문자를 색인으로 사용할 수도 있습니다.

Range("B4:E10").Columns("C").Select

C는 세 번째 열이므로 D4:D10이 선택됩니다.

Range("C4:F6").Columns("D").Select

D는 네 번째 열이므로 F4:D6이 선택됩니다.

Range("B2:C10").Columns("D").Select

반환된 범위가 지정된 범위를 벗어날 수 있습니다.

Range("B2:C10").Columns("D").Select

여러 영역이 선택된 경우 첫 번째 영역의 열 개수만 반환합니다.

빈 열을 삭제하는 코드입니다.

Sub DeleteEmptyColumns()

    Dim rng As Range
    Dim lastColumn As Long
    Dim column As Long
    Dim columnRange As Range
    
    ' 현재 사용된 범위를 가져옵니다.
    Set rng = ActiveSheet.UsedRange
    
    ' 마지막 열의 인덱스를 가져옵니다.
    lastColumn = rng.Columns.Count
    
    ' 마지막 열부터 첫 번째 열까지 역순으로 반복합니다.
    For column = lastColumn To 1 Step -1
        ' 현재 열의 범위를 가져옵니다.
        
        Set columnRange = rng.Columns(column)
        
        ' 열의 모든 셀이 비어있는지 확인합니다.
        If WorksheetFunction.CountA(columnRange) = 0 Then
            ' 열을 삭제합니다.
            columnRange.Delete
        Else
        End If
        
    Next column
    
End Sub

매크로 사용 전

매크로 사용 후

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

[Range 개체] End속성  (0) 2023.07.09
[Range 개체] EntireColumn속성  (0) 2023.07.09
[Range 개체] Column속성  (0) 2023.07.07
[Range 개체] EntireRow속성  (0) 2023.07.06
[Range 개체] Rows속성  (0) 2023.07.05