excel vba中如何获取筛选数据的正确行号
发布网友
发布时间:2022-05-05 20:48
我来回答
共3个回答
热心网友
时间:2022-06-28 02:04
'获得筛选结果的行号
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
热心网友
时间:2022-06-28 02:04
我的方法是集成了多位大神的结果,解决了我的问题(我想将筛选出来的行及其后的三行一起删掉,筛选条件是宏录制的)。代码如下:
‘筛选条件,可使用宏录制,然后修改
j=rows("2:2000").specialcells(12).row ‘获取筛选的行号,“2:2000”是筛选的范围,根据需要修改
Rows(j & ":" & (j+3)).Select ’选中筛选的行及其后3行,根据需要修改
’选中后的操作,可使用宏录制,然后修改
热心网友
时间:2022-06-28 02:05
这个问题中有些不好理解:筛选数据的结果往往是一批数据,它们的行号就不只一个,另外什么是正确行号,难道筛选数据还有非正确行号?
如果是要找出某数据的行号,可用:cells.find(某数据).row 代替,前提是某数据必须在表格的单元格中存在,某数据可以是文本型、数值型等,还可添加参数增加查找的*条件。