엑셀 VBA를 활용할 때 Rows.Count와 Columns.Count 속성을 사용하면 특정 범위의 행과 열의 개수를 구할 수 있습니다. Rows.Count와 Columns.Count는 행/열의 수를 구할 때 뿐만 아니라, 범위를 동적으로 설정하거나 배열을 만들 때도 활용되는 기초적인 명령문이기 때문에, VBA를 활용할 때 꼭 익혀둬야 합니다.
#1. Rows.Count와 Columns.Count의 기본 구문
1) 기본 구문
- 범위.Rows.Count: 특정 범위 또는 워크시트 내의 행의 개수를 반환합니다.
- 범위.Columns.Count: 특정 범위 또는 워크시트 내의 열의 개수를 반환합니다.
2) 간단한 예시
▲Rows.Count 예시
: 선택된 범위(Selection, 엑셀 상으론 B2:G12)의 행 수(Rows)를 계산(Count)
▲Columns.Count 예시
: 선택된 범위(Selection, 엑셀 상으론 B2:G12)의 행 수(Columns)를 계산(Count)
#2. 테이블(ListObject)와 함께 사용해보기
테이블 ListObject에 대한 소개글은 위의 글을 참고해주실 바랍니다.
<예시 파일 매크로 전문>
Sub test_tbl()
Dim tbl As ListObject
Set tbl = Sheets(1).ListObjects("표1")
MsgBox "rows: " & tbl.Range.Rows.Count & ", columns: " & tbl.Range.Columns.Count
MsgBox "rows: " & tbl.DataBodyRange.Rows.Count & ", columns: " & tbl.DataBodyRange.Columns.Count
End Sub
▲ 예시파일 내 '표1'은 머리글 행을 포함해 6개의 행, 2개의 열로 이뤄져 있습니다.
▲ tbl.Range.Rows.Count를 입력했을 때는 머리글을 포함한 행 수(6)를 계산합니다.
▲반면 tbl.DataBodyRange.Rows.Count를 입력하면 머리글을 제외하고 데이터 부분의 행만(5) 계산합니다.
즉, 표 전체의 행을 계산하고 싶을 땐 설정한 표이름.Range.Rows.Count를, 데이터 행 수만 계산하고 싶을 땐 설정한 표이름.DataBodyRange.Rows.Count를 사용하면 됩니다.
'엑셀, VBA, 파워쿼리 > VBA 매크로' 카테고리의 다른 글
[VBA 매크로] Offset과 Resize로 데이터 범위 참조 및 조정하기(기존 데이터 지우기) (0) | 2024.08.25 |
---|---|
[VBA 매크로] OFFSET 프로퍼티 소개(셀, 범위 이동) (0) | 2024.06.25 |
[VBA 매크로] Resize 프로퍼티로 범위 선택하기(Range.Resize) (0) | 2024.05.14 |
[VBA 매크로] CurrentRegion 프로퍼티로 Range 동적으로 설정하기 (0) | 2024.05.06 |
[VBA 매크로] ListObject 객체로 엑셀 테이블 다루기 (1) | 2024.02.24 |
댓글