gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 07:58:29 24 4
gpt4 key购买 nike

任何人都可以帮我找到在 Excel 表格中应用过滤器后第 n 个元素的绝对行号吗?

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

最佳答案

最简单的方法是特殊单元格。见下文:

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
<小时/>

编辑

汤姆声称此方法行不通,但我很确定它可以满足您的要求。示例:

这是我的原始测试表 - 未过滤,因此您可以看到我们正在做什么。 Unfiltered

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

Filtered

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

关于VBA从Excel中的过滤表中返回第n行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28855848/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com