循环计数行并将行计数粘贴到特定单元格

Loop through counting rows and paste row count to a specific cell

我选择了具有动态列数的数据,每列下都有一个动态值列表。

我想遍历每一列并计算减去两个 header 字段的项目数,并将其作为一个值放在特定位置。

所以我有两行 headers,然后是空白行,然后是数据。

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

我知道问题出在循环部分,但我不知道如何调用数字格式的行。

这是做什么的: 如果我正确理解了这个问题。这将跳过两个 header 行,并计算以查看每一列中有多少行有数据。然后将计数放在每列的第三行。

您遇到了一些问题:

  • 最好始终使用“.”访问属性。比如,LastCol = .Cells.

  • 您过早结束了 With 语句。

  • 如果您使用变量遍历列,则应使用 .Cells 而不是 Range,并使用列号而不是 Letters。

  • 您应该为循环和行计数使用 Long 类型变量而不是 Integer。

  • 您可能希望将这段代码放在一个模块中,然后从工作表激活事件中调用它。这样,如果您需要更新计数,您可以通过按钮或任何其他时间调用它。

  • 计数应 = RC - 3 以说明 header 行。

工作表代码中:

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