【问题标题】:Count number of rows in multiple Excel sheets and return values to a "summary" sheet计算多个 Excel 工作表中的行数并将值返回到“摘要”工作表
【发布时间】:2020-07-02 21:24:20
【问题描述】:

我有一个包含 10 多张工作表的 Excel 工作簿。

在“摘要”表上,我想总结其他每个表上使用了多少行。

我认为多次调用的函数是最有效的。

如果是这样,那么我认为它开始于:

Function CountMyRows(SName)  # where SName is the name of a sheet
    Dim rowCount As Integer
    rowCount = Worksheets("SName").Rows.Count

我的开始方向正确吗?

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    我想总结一下其他每张纸上使用了多少行

    您正在寻找UsedRange 属性:

    Function CountMyRows(SName As String) As Long
        CountMyRows = ThisWorkbook.Worksheets(SName).UsedRange.Rows.Count
    End Function
    

    请注意,我使用的是不带引号的Worksheets(SName),而且使用Long 类型来存储行数更可靠,因为Integer 的最大值仅为32767

    【讨论】:

      【解决方案2】:

      A1-Axx 中列出您的工作表(名称),在B 列(例如单元格B1)输入公式:

      =COUNTA(INDIRECT(A1&"!A:A"))
      

      在下面的示例中,我添加了“-1”以不计算表格中的标题行。


      【讨论】:

        【解决方案3】:

        将以下两个函数放入要计算所有工作表中已使用行的工作簿中的一个模块中。我使用函数“Test_it”来获取工作簿中的每个工作表,然后通过传递工作表名称来调用“CountMyRows”。要对其进行测试,请将光标放在“Test_It”函数内,然后按 F5。您将在即时窗口中看到结果。

        请注意,您的代码必须更改,因为 (1) 它计算了工作表中的总行数 - 未使用的行数; (2) Integer 可能太小了...

        Function Test_It()
            For Each Sheet In ThisWorkbook.Sheets
                Debug.Print Sheet.Name & vbTab & CountMyRows(Sheet.Name)
            Next Sheet
        End Function
        
        
        Function CountMyRows(SName) As Long         '# where SName is the name of a sheet
            Dim rowCount As Long
            rowCount = Worksheets(SName).UsedRange.Rows.Count
            CountMyRows = rowCount
        End Function
        

        【讨论】:

        • 谢谢韦恩,没有意识到它会计算总行数:-( 当我插入 "=Test_It()" 没有引号时,我得到#NAME - 公式包含无法识别的文本。我意识到它很可能只是我的新手方法......
        • 所以现在我在一个模块中找到了正确的工作簿......我得到了一个“0”返回。如果我将工作表的名称插入到第二个函数中,我会得到正确的值(在为 Header 减去 1 之后)。所以看起来选项卡的名称没有被传递给第二个函数,对吗?
        • 我更新了答案,但如果你想在现有代码中使用它,你只需要调用'CountMyRows'传递一个工作表名称并接收#行。即 MsgBox "Rows in Sheet1 = " & CountMyRows("Sheet1").
        • 谢谢韦恩,我会在星期一检查一下。出色而快速的响应:-)
        猜你喜欢
        • 2022-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多