在Excel中动态选择当前列中筛选的行数

在Excel中动态选择当前列中筛选的行数,excel,vba,Excel,Vba,是否有一种方法可以让Excel中的VBA根据当前列选择一组经过筛选的行?当前的工作流程通常要求我们一次选择25或100个活动列的过滤行 我在研究过程中遇到的大多数宏似乎 选择表或列中的所有数据 包含预定义的列。 我最初认为这将是一个海峡两岸的宏观发展,但有困难。我在研究过程中发现的代码向下移动了一定数量的行,但在计数时似乎并没有将过滤行考虑在内 Sub MoveOneCellDownAFilteredList() ActiveCell.Select Range(Selection

是否有一种方法可以让Excel中的VBA根据当前列选择一组经过筛选的行?当前的工作流程通常要求我们一次选择25或100个活动列的过滤行

我在研究过程中遇到的大多数宏似乎

选择表或列中的所有数据 包含预定义的列。 我最初认为这将是一个海峡两岸的宏观发展,但有困难。我在研究过程中发现的代码向下移动了一定数量的行,但在计数时似乎并没有将过滤行考虑在内

Sub MoveOneCellDownAFilteredList()
    ActiveCell.Select
    Range(Selection, Selection.Offset(2, 0)).Select
    Do Until ActiveCell.EntireRow.Hidden = False
        ActiveCell.Offset(2, 0).Select
    Loop
End Sub

非常感谢您的帮助。

以下只是示例,没有现成的复制粘贴解决方案,但它们应该为您提供解决问题的正确提示:

要仅选择特定范围的可见单元格,可以使用

以下仅选择A1:A200范围外的可见单元格

Range("A1:A200").SpecialCells(xlCellTypeVisible).Select
例如,要选择活动列的所有可见整行,可以使用

ActiveCell.EntireColumn.SpecialCells(xlCellTypeVisible).EntireRow.Select
或者,若要仅选择可见且具有常量值的行,可以将它们按如下方式组合

ActiveCell.EntireColumn.SpecialCells(xlCellTypeConstants).SpecialCells(xlCellTypeVisible).EntireRow.Select
有关特殊单元的更多选项,请阅读


请注意,我建议不要使用。如果您想在选择之外执行任何其他操作,请选择。我建议您阅读一些好的实践,以及更好、更快、更可靠的代码。

选择这些代码后,您需要如何处理它们?复制