根据zrqihg的提示,编制了下面的函数,总行数是数组的元素个数-2(因为0我没使用,1是标题行)
函数返回的是一个数组,从元素2开始是各行的行号。
获得筛选结果的行号
Sub 函数调用()
Dim 行号 As Variant
行号 = GetRowNum("A")
'所得行号是一个数组,其中行号(0)未使用,如查筛选的第一行是标题的话,行号(1)是标题所在行,所以你的结果
是从行号(2)开始的。
End Sub
Function GetRowNum(Col As String) As Variant
Dim i As Long
Dim rng As Range
Dim rng2 As Range
Dim RowS()
i = 1
'将筛指定列的可见数据赋给rng,12是可见,2是常量,23是16+4+1+2
Set rng = Range(Col & ":" & Col).SpecialCells(12).SpecialCells(2, 23)
ReDim RowS(0 To rng.Count)
For Each rng2 In rng
RowS(i) = rng2.Row
i = i + 1
Next
GetRowNum = RowS
End Function