2016-07-25 4 views
-1

두 테이블이 있는데이 두 테이블 사이의 행 수가 다릅니다. 두 테이블 사이에 존재하는 행 수를 어떻게 식별합니까?Excel VBA에서 두 테이블 사이의 행 수를 계산하는 방법은 무엇입니까?

+1

좋은 질문 : 어쩌면 당신은 더 많은 데이터를 공유하는 경우, 코드 시도하고 우리가 도울 수있는 테이블의 스크린 샷처럼. –

+0

@ShaiRado는 절대적으로 적합합니다. 두 테이블 사이의 "행"은 무엇을 의미합니까? 두 테이블 사이의 "열"은 어떻습니까? 당신에게 "테이블"이란 무엇입니까? 'ListObjects'를 사용하고 있습니까? 아니면 두 테이블 사이의 구분자로 "빈"행을 고려합니까? 빈 레코드가있는 테이블이 없다는 의미입니까? 그렇다면 "빈"행 (전체 행에 데이터가 없거나 특정 열까지만)이 무엇입니까? – Ralph

답변

0

누적 또는 개별적으로 의미합니까?

별도로 : 테이블의 아무 곳이나 셀을 선택하고 그것의 ..

Activecell.CurrentRegion.Rows.Count 

누적 내가 테이블 이름 또는 범위 등과 같은 더 많은 정보를 필요할 것

0

당신이 처리한다 ListObject 테이블과 정의 된 범위 사이의 행 거리를 알고 싶다면 다음을 사용할 수 있습니다.

Function RowsBetweenTables(Table1 As ListObject, Table2 As ListObject) As Long 
    Dim tempLong As Long 

    If Intersect(Table1.Range.EntireRow, Table2.Range.EntireRow) Is Nothing Then 
     tempLong = Table2.Range.Rows(1).Row - Table1.Range.Rows(Table1.Range.Rows.Count).Row - 1 
     Select Case tempLong 
      Case 0 
       RowsBetweenTables = 0 
      Case Is < 0 
       RowsBetweenTables = Table1.Range.Rows(1).Row - Table2.Range.Rows(Table2.Range.Rows.Count).Row - 1 
      Case Is > 0 
       RowsBetweenTables = tempLong 
     End Select 
    Else 
     RowsBetweenTables = -1 
    End If 
End Function 

는 다음과 같이 이용 될 수 있습니다 :

Sub main() 
    Dim Table1 As ListObject, Table2 As ListObject 
    Dim nRows As Long 

    With Worksheets("Tables") '<--| change "Tables" with your actual sheet with tables name 
     Set Table1 = .ListObjects("Table1") '<--| change "Table1" with your actual first table name 
     Set Table2 = .ListObjects("Table2") '<--| change "Table1" with your actual second table name 
    End With 

    nRows = RowsBetweenTables(Table1, Table2) 
    If nRows >= 0 Then 
     MsgBox "there are " & nRows & " rows between tables" 
    Else 
     MsgBox "no rows between tables!" 
    End If 
End Sub 
+0

@ 지반 : 그걸 통과 했습니까? – user3598756

+0

@ 지반 : 노력하고있는 사람들에게 피드백을주는 것이 좋을 것입니다. – user3598756

관련 문제