如何查找工作簿的最大行数 - vba

Ash*_*hok 1 excel vba excel-vba

我想从工作簿中获取包含多个工作表的数据,并且不知道哪个工作表有数据.因此,需要检查工作簿的每个工作表的已用行数,并激活包含用于获取数据的最大已用行的工作表.使用以下代码的结构和任何建议将不胜感激.

Sub Maxdatasheet()
Dim wscount As Integer
Dim myArray() As Variant

wscount = ActiveWorkbook.Worksheets.Count

  For i = 1 To wscount
    myArray(i) = Worksheets(i).UsedRange.Rows.Count
    Next
    'need to activate the maximus rows of the sheet
End Sub
Run Code Online (Sandbox Code Playgroud)

Sam*_*Sam 5

一些变化:
- 没有数组,跟踪哪个工作表有最大值
- 改为For Each(即使你的代码在这方面完全没问题)

Sub Maxdatasheet()
    Dim ws As Worksheet
    Dim MaxRowSheet As Worksheet
    Dim MaxRowCount As Long    ' Do not use Integer, may be too small and cause overflow

    wscount = ActiveWorkbook.Worksheets.Count

    MaxRowCount = 0

    For Each ws In ActiveWorkbook.Worksheets
        If ws.UsedRange.Rows.Count > MaxRowCount Then
            MaxRowCount = ws.UsedRange.Rows.Count
            Set MaxRowSheet = ws
        End If
    Next
    MaxRowSheet.Activate
End Sub
Run Code Online (Sandbox Code Playgroud)

  • 处理行/列号时,始终使用long而不是整数. (2认同)