[VBA 매크로] Rows.Count와 Columns.Count로 데이터 범위 행 수와 열 수 구하기
엑셀, VBA, 파워쿼리/VBA 매크로

[VBA 매크로] Rows.Count와 Columns.Count로 데이터 범위 행 수와 열 수 구하기

by Jongg 2024. 6. 25.
728x90

 

엑셀 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)

 

728x90

 

#2. 테이블(ListObject)와 함께 사용해보기

 

 

[VBA 매크로] ListObject 객체로 엑셀 테이블 다루기

ListObject는 Excel VBA에서 사용되는 객체로, 테이블 형식의 데이터를 다루고자 할 때 ListObject 객체를 사용하면 편리하고 효율적으로 작업할 수 있습니다. 이번 글에서는 테이블을 ListObject로 선언하

writingpjt.tistory.com

테이블 ListObject에 대한 소개글은 위의 글을 참고해주실 바랍니다.

 

예시.xlsm
0.02MB

 

<예시 파일 매크로 전문>
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를 사용하면 됩니다.

728x90

댓글