下面分享一个原创的获取工作簿的最大非空行行数和最大非空列列数的函数.
因为有时候,直接通过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