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

问题描述 投票:0回答:1

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

我在研究期间遇到的大多数宏似乎都是

  1. 选择表或列中的所有数据
  2. 涉及预定义的列。

我最初认为这将是一个向前发展但仍有困难的前沿宏观。我在研究过程中发现的代码向下移动了一定数量的行,但在计数时似乎没有考虑过滤行。

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

任何帮助表示赞赏。

excel excel-vba vba
1个回答
1
投票

以下只是示例(没有准备好使用复制粘贴解决方案),但它们应该为您提供正确的提示来解决您的问题:

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

  • 以下仅选择超出范围“A1:A200”的可见单元格 Range("A1:A200").SpecialCells(xlCellTypeVisible).Select
  • 例如,选择活动列的所有可见整行,您可以使用类似的东西 ActiveCell.EntireColumn.SpecialCells(xlCellTypeVisible).EntireRow.Select
  • 或者只选择可见的行并且具有常量值,您可以将它们组合起来 ActiveCell.EntireColumn.SpecialCells(xlCellTypeConstants).SpecialCells(xlCellTypeVisible).EntireRow.Select

阅读documentation以获取SpecialCells的更多选项。


请注意,如果您想在选择旁边做任何进一步的操作,我建议不要使用.Select。我建议阅读How to avoid using Select in Excel VBA以获得良好的实践和更好,更快更可靠的代码。

© www.soinside.com 2019 - 2024. All rights reserved.