excel - 查找下一个可见行

标签 excel vba

我正在尝试编写一个函数来返回自动筛选列表中的下一个可见行。

在具有自动筛选范围的工作表中,以下代码返回 #VALUE 错误:

Function FindNextVisible(S As Range) As Range
Dim L As Range
Dim R As Range
Dim counter As Integer
counter = 1
Set L = Range(S, S.End(xlDown)).Cells.SpecialCells(xlCellTypeVisible)
For Each R In L
    counter = counter + 1
    If counter = 2 Then FindNextVisible = R
Next 
End Function

我怀疑初学者犯了错误...

更新1: 好吧,很好的建议。我无法使用 SpecialCells。不幸的是,VBA 对我来说并不强,而且我在使用 Sub 版本时遇到了麻烦。

也许还有另一种方法。我想比较不连续(由于过滤)行之间的文本,但我不知道如何为公式提供对下一个可见行的引用。

最佳答案

以下内容应该可以实现您正在寻找的内容。

Public Function NextVisibleCell(Range As Range) As Range
Application.Volatile
Dim i As Long
Set Range = Range.Cells(Range.Rows.Count, Range.Columns.Count)
For i = 1 To Rows.Count - Range.Row
    If Not Range.Offset(i).EntireRow.Hidden Then
        Set NextVisibleCell = Range.Offset(i)
        Exit Function
    End If
Next i
End Function

关于excel - 查找下一个可见行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21593675/

相关文章:

vba - 循环停止得太快

excel - 如何在excel vba中过滤文件的修改日期

arrays - 如何在VBA中将文本文件读取到数组中

excel - 复制粘贴基于行和列的单元格

excel - VBA Excel-编译错误-属性无效使用

vba - 复制单元格 "n"次。 "n"是用户指定的

excel - 如何在 VBA 中获取标签的内部文本,不包括嵌套标签中的文本?

excel - 舍入变体

Excel自定义十进制数字格式尾随点

excel - VBA代码中的语言识别问题