迈克(Mike)作为会计师,需要根据行中两个单元格中的值隐藏工作表中的行。他的数据表有三列;如果一行在第二列和第三列中包含零,则该行应隐藏。如果第二或第三列为空白或包含其他值,则不应隐藏该行。

有两种方法可以解决此问题。首先是使用Excel的筛选功能。只需创建另一个包含如下公式的列:

=AND(B2=0,C2=0)

仅当第二(B)列和第三(C)列均包含零值时,该公式返回的值才为True。将公式复制到该列中其他适当的单元格,然后可以基于该列应用过滤器。当您仅在该列中显示那些包含False的行时,则实际上已隐藏了第二列和第三列中值为零的行。

您还可以使用宏为您签出行。下面的宏逐步浏览工作表中从第1行开始的每一行。只要A列中有内容,宏就会检查以确保B和C列中的值为零。如果存在,则设置该行的.Hidden属性。

Sub Hide()

Dim Criteria as Boolean     Dim i As Integer

i = 1     Do Until Trim(Cells(i, 1).Value) = ""          Criteria = True         Criteria = Criteria And (Cells(i, 2).Value = 0) _           And Cells(i, 2).Value <> ""

Criteria = Criteria And (Cells(i, 3).Value = 0) _           And Cells(i, 3).Value <> ""          If Criteria Then Rows(i).EntireRow.Hidden = True         i = i + 1      Loop  End Sub

该宏一直运行到遇到一行A列中没有任何内容的行。这意味着您需要确保数据表之前的行中确实有内容。如果您的数据表从工作表的第4行开始,并且单元格A1到A3中没有任何内容,则该宏将永远无法令人满意地运行。当然,您可以在这种情况下调整宏,以便它开始检查第4行。只需将i变量的初始赋值更改为4而不是1。

注意:

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

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

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