2015-01-09 2 views
0

동적 열 개수의 데이터가 있으며 각 열 아래에 동적 값 목록이 있습니다.행 개수 계산 및 행 수를 특정 셀에 붙여 넣기

각 열을 통과하여 항목 수에서 두 개의 머리글 필드를 뺀 수를 계산하여 특정 위치의 값으로 계산하려고합니다.

그래서 두 행의 머리글과 비어있는 행을 차례로 가지고 있습니다.

Private Sub Worksheet_Activate() 
Dim LastCol As Integer 
Dim I As Long 
Dim RC As Long 

    With ActiveSheet 
     LastCol = Cells(2, Columns.Count).End(xlToLeft).Column 
    End With 

    For I = 1 To LastCol 
     RC = Range("I:I" & Rows.Count).End(xlUp).Row 
     Cells(3, I).Value = RC 
    Next I 

End Sub 

문제는 루프 섹션에 있지만 문자로 된 행을 호출하는 방법을 모르겠습니다.

답변

1

내용 : 질문을 올바르게 이해하면. 이렇게하면 두 개의 헤더 행을 건너 뛰고 각 행에 대해 얼마나 많은 행에 데이터가 들어 있는지 확인합니다. 그런 다음 각 열의 세 번째 행에 개수를 배치하십시오.

당신은 몇 가지 문제가 있어요 "."

  • 그것은 항상 사용하여 속성에 액세스하는 것이 좋습니다의를 마찬가지로, LastCol = .Cells.

  • With 문을 너무 빨리 종료했습니다.

  • 변수를 사용하여 열을 반복 할 경우 Range 대신 .Cells를 사용하고 Letters 대신 Column number를 사용해야합니다.

  • Integer 대신에 루프와 행 수에 Long 유형 변수를 사용해야합니다.

  • 이 코드를 모듈에 넣은 다음 워크 시트 활성화 이벤트에서 호출 할 수 있습니다. 카운트를 업데이트해야하는 경우 단추 또는 다른 시간에서 호출 할 수 있습니다.

  • 개수는 헤더 행을 고려하여 RC = 3이어야합니다. 워크 시트 코드에서

: 어떤 소스에서 호출 할 수 있도록 허용를 언제든지 :

Private Sub Worksheet_Activate() 

    Call CountColumnRows 

End Sub 

그런 다음 모듈,이 놓습니다.

Sub CountColumnRows() 

Dim LastCol As Long, I As Long, RC As Long 

    With ActiveSheet 
     LastCol = .Cells(2, Columns.count).End(xlToLeft).column 

     For I = 1 To LastCol 
      RC = .Cells(Rows.count, I).End(xlUp).row 'I as variable column Number 
      .Cells(3, I).Value = RC - 3     'Compensate for the headers and Count Row 
     Next I 

    End With 

End Sub 

Screenshot