下面分享一个原创的获取工作簿的最大非空行行数和最大非空列列数的函数.

因为有时候,直接通过Ws1.UsedRange.Rows.Count和Ws1.UsedRange.Columns.Count属性获取的最大行数和最大列数中有很多的空行,并不能以此来确定有效数据的个数.我们通过在它们的基础上剔除掉末尾的空行和空列,就得到了最大非空行数和最大非空列数.

因为头条会自动剔除行首的半角空格,所以使用了全角空格,所以直接复制,可能不能使用,如果要使用,可以将全角空格替换成空格.

Function FFHangmax(Ws1 As Worksheet, Xuanze1 As Integer)

Dim Hanglieii, Hangmax1, Liemax1 As Long

If Cells(1, 1) = "" Then

Cells(1, 1) = " "

End If

Hangmax1 = Ws1.UsedRange.Rows.Count

Liemax1 = Ws1.UsedRange.Columns.Count

If Xuanze1 <> 2 Then

Fanhui1:

For Hanglieii = 1 To Liemax1

If Len(Cells(Hangmax1, Hanglieii)) > 0 Then

FFHangmax = Hangmax1

GoTo Jixu1

End If

Next

If Hanglieii > Liemax1 Then

Hangmax1 = Hangmax1 - 1

GoTo Fanhui1

End If

Else

Fanhui2:

For Hanglieii = 1 To Hangmax1

If Len(Cells(Hanglieii, Liemax1)) > 0 Then

FFHangmax = Liemax1

GoTo Jixu1

End If

Next

If Hanglieii > Hangmax1 Then

Liemax1 = Liemax1 - 1

GoTo Fanhui2

End If

End If

Jixu1:

End Function

通过下面的Sub可以测试函数结果是否正确:

Sub ceshi1()

Dim Num1%

Num1 = FFHangmax(ActiveSheet, 1)

Debug.Print Num1

Num1 = FFHangmax(ActiveSheet, 2)

Debug.Print Num1

End Sub