热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

VBA从excel中的过滤表返回第n行号

如何解决《VBA从excel中的过滤表返回第n行号》经验,为你挑选了1个好方法。

在excel表中应用过滤器后,任何人都可以帮我找到第n个元素的绝对行数.

例如,我已经过滤并且具有可见范围的数据元素.现在,当没有过滤器打开时,此过滤范围中的第20行(第n行)可能是第60行(绝对意义).有没有办法使用VBA查找绝对行号?



1> Lopsided..:

最简单的方法是特殊细胞.见下文:

Sub test()

Dim i As Integer, j As Integer, k As Integer
Dim Report As Worksheet

Set Report = Excel.ActiveSheet ' Store the current worksheet in a variable (always a good idea)
Dim visRng As Range ' Creating a range variable to store our table, excluding any rows that are filtered out.
Set visRng = Report.UsedRange.SpecialCells(xlCellTypeVisible) ' Select only rows within the used range that are visible.

Dim r As Range 
For Each r In visRng.Rows ' Loop through each row in our visible range ...
    MsgBox (r.Row) ' ... and retrieve the "absolute" row number.
Next

End Sub

编辑

汤姆声称这种方法不起作用,但我很确定它能满足您的要求.例:

这是我原来的测试表 - 未经过滤,因此您可以看到我们正在做的事情. 未经过滤

然后我们在表格的中间某处过滤几个值...

过滤

现在,当我们运行上面发布的脚本时,我们的消息框将显示每个未过滤行的"绝对"行号.结果是1,3,4,5和7.


推荐阅读
author-avatar
爱你无丶止境空间
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有