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
感谢任何帮助。
答案 0 :(得分: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以获得良好的做法以及更好,更快更可靠的代码。