programing

VBA: 테이블(목록 개체)의 행 수 계산

closeapi 2023. 7. 5. 20:43
반응형

VBA: 테이블(목록 개체)의 행 수 계산

테이블 이름(리스트 오브젝트)을 파라미터로 사용하여 행 수를 반환할 수 있는 VBA를 엑셀로 작성하려고 합니다.

다음은 작동하지만 테이블 이름을 가진 문자열을 전달할 수 없습니다.

MsgBox ([MyTable].Rows.Count)

다음은 오류를 나타냅니다.

필요한 개체

v_MyTable = "MyTable"
MsgBox (v_MyTable.Rows.Count)

다음은 오류를 나타냅니다.

객체 변수 또는 블록 변수가 설정되지 않음

v_MyTable_b = "[" & "MyTable" & "]"
MsgBox(v_MyTable_b.Rows.Count)

처음 접하는 ListObjects로 작업도 해봤습니다.오류가 발생했습니다.

개체가 이 속성 또는 메서드를 지원하지 않습니다.

Dim tbl As ListObject
Set tbl = ActiveSheet.ListObjects("MyTable")
MsgBox(tbl.Rows.Count)

도와주셔서 감사합니다!

당신은 당신이 찾고 있는 것에 대해 한 단계 더 깊이 들어가야 합니다.

Dim tbl As ListObject
Set tbl = ActiveSheet.ListObjects("MyTable")
MsgBox tbl.Range.Rows.Count
MsgBox tbl.HeaderRowRange.Rows.Count
MsgBox tbl.DataBodyRange.Rows.Count
Set tbl = Nothing

자세한 정보는 다음 위치:

개체 인터페이스 나열
ListObject.범위 특성
ListObject.데이터 본문 범위 속성
ListObject.헤더 행 범위 속성

다음을 사용할 수 있습니다.

    Range("MyTable[#Data]").Rows.Count

이전 코드가 두 경우 모두 "1"을 반환하므로 데이터 행이 하나이거나 데이터가 없는 테이블을 구분해야 합니다.이를 통해 빈 테이블을 테스트합니다.

    If WorksheetFunction.CountA(Range("MyTable[#Data]"))

사용할 수 있는 항목:

Sub returnname(ByVal TableName As String)

MsgBox (Range("Table15").Rows.count)

End Sub

그리고 아래와 같이 함수를 호출합니다.

Sub called()

returnname "Table15"

End Sub

언급URL : https://stackoverflow.com/questions/29639474/vba-counting-rows-in-a-table-list-object

반응형