跳过宏中的隐藏行(Microsoft Excel)
使用工作表时,隐藏包含当前不希望显示的数据的行并不罕见。如果您编写了一个宏来处理工作表中的数据,则您可能想知道如何跳过而不处理已标记为隐藏的行。
完成此操作的方法是检查每一行的Hidden属性。
如果该属性为True,则该行被隐藏;否则,该行将被隐藏。如果为False,则可见行。
作为其工作方式的一个示例,假设您有一个用于跟踪客户端的工作表。其中一些客户端被认为是活动的,而其他客户端则被认为是非活动的。要将客户端标记为非活动状态,请隐藏包含该客户端的行。在某些时候,您要为活动的客户端编号,并想要使用宏进行操作。以下宏将为您解决问题:
Sub NumberClients() Dim c As Range Dim j As Integer If Selection.Columns.Count > 1 Then MsgBox "Only select the cells you want numbered" Exit Sub End If j = 0 For Each c In Selection If Not c.Rows.Hidden Then j = j + 1 c.Value = j Else c.Clear End If Next c End Sub
要使用宏,只需选择要在其中进行编号的单元格。首先,宏将检查以确保您仅在单个列中选择了单元格。然后,它逐步遍历选定范围内的每个单元格。如果包含单元格的行未被隐藏,则计数器(j)递增并存储在单元格中。如果包含该单元格的行被隐藏,则该单元格的内容将被清除。该宏的关键是If … End If结构,用于测试Hidden属性的值。
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(2286)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: