我有一张包含10张以上的Excel工作簿。
关于"摘要"表格我想总结每个其他表格上使用了多少行。
我认为多次调用的函数效率最高。
如果是这样,那么我认为它的开头就像;
Function CountMyRows(SName) # where SName is the name of a sheet
Dim rowCount As Integer
rowCount = Worksheets("SName").Rows.Count
我是从正确的方向开始的吗?
答案 0 :(得分:1)
我想总结在每张其他工作表上使用了多少行
您正在寻找UsedRange财产:
Function CountMyRows(SName As String) As Long
CountMyRows = ThisWorkbook.Worksheets(SName).UsedRange.Rows.Count
End Function
请注意,我使用Worksheets(SName)
没有引号,并且使用Long
类型存储行计数更可靠,因为Integer
的最大值仅为32767
。
答案 1 :(得分:0)
将以下两个函数放入工作簿中要在所有工作表中计算已用行数的模块中。我使用了Function' Test_it'抓住工作簿中的每个工作表,然后调用“CountMyRows”'通过传递工作表名称。要测试它,请将光标放在' Test_It'功能,然后按F5。您将在即时窗口中看到结果。
请注意,您的代码必须更改,因为(1)它计算了工作表中的总行数 - 未使用的行数; (2)整数可能太小......
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
答案 2 :(得分:0)
在A1-Axx
的B列(例如单元格B1
)中列出您的工作表(名称),输入公式:
=COUNTA(INDIRECT(A1&"!A:A"))
在下面的示例中,我添加了“ -1”,以不计算工作表中的标题行。