卡尔提(Karthi)指出,他经常需要使用“转到特殊位置”来仅选择所选内容中的可见单元格。这使他想知道是否有一种方法可以在宏中选择这些单元格。

有很多方法可以选择不带宏的可见单元格,但是这些方法不会在这里介绍。假设您要选择可见的单元格作为您可能正在创建的较大宏的一部分。例如,在进行某种格式设置或以其他方式处理单元之前,您可能需要选择可见的单元。

要从一系列选定的单元格中仅选择可见的单元格,可以使用以下代码行:

Selection.SpecialCells(xlCellTypeVisible).Select

如果在选择这些单元格的可见子集之前需要处理其他一些初始单元格范围,则只需更改该行的“选择”部分即可。例如,您可以使用以下行在工作表的使用范围内选择可见单元格:

ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible).Select

同样,您可以使用此行选择整个工作表上所有可见的单元格:

Cells.SpecialCells(xlCellTypeVisible).Select

请记住,到目前为止描述的技术会选择所有可见的单元格,即使它们不在屏幕上也是如此。换句话说,这些技术会在工作表中选择任何非隐藏的单元格。如果您确实只想选择当前在屏幕上可见的那些非隐藏单元格,那么可以使用另一种技术:

Intersect(MyRange, ActiveWindow.VisibleRange).SpecialCells(xlCellTypeVisible)

该代码从仅选择给定范围(在本例中为“ MyRange”)与活动窗口中的单元格可见范围相交的那些单元格开始。通过使用SpecialCells集合进一步确定这些单元格,以确保仅使用非隐藏的单元格。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(852​​4)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: