在Excel中动态选择当前列中的筛选行数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Excel中动态选择当前列中的筛选行数相关的知识,希望对你有一定的参考价值。
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
任何帮助表示赞赏。
答案
以下只是示例(没有准备好使用复制粘贴解决方案),但它们应该为您提供正确的提示来解决您的问题:
要仅选择特定范围的可见单元格,可以使用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以获得良好的实践和更好,更快更可靠的代码。
以上是关于在Excel中动态选择当前列中的筛选行数的主要内容,如果未能解决你的问题,请参考以下文章