Excel强大的条件格式设置功能使您可以根据单元格的内容来更改单元格的格式。不幸的是,无法根据特定单元格的值轻松隐藏整个数据列。

但是,您可以通过使用宏来分析单元格并调整要有条件隐藏的行的“隐藏”属性来获得所需的效果。例如,下面的简单宏检查单元格B4的内容,如果该单元格包含0,则隐藏列H。如果单元格B4不包含0,则显示列H。

Sub HideColumn1()

If Range("B4").Value = 0 Then         Columns("H").EntireColumn.Hidden = True     Else         Columns("H").EntireColumn.Hidden = False     End If End Sub

如果要实时隐藏和取消隐藏列,则可以使用以下版本的宏。只需确保将此版本放在要使用它的工作表的代码窗口中即可。

Private Sub Worksheet_Change(ByVal Target As Range)

If Range("B4").Value = 0 Then         Columns("H").EntireColumn.Hidden = True     Else         Columns("H").EntireColumn.Hidden = False     End If End Sub

请注意,两个宏的内胆是相同的。唯一的区别是第二个版本是由Excel中的一个事件触发的-当前选择了哪个单元格的更改。这意味着每次您从一个单元格移动到另一个单元格时,都会检查B4中的值,并且H列是隐藏的或未隐藏的。

如果单元格B4的内容可能为空,则Excel可能会将空度解释为零值。在这种情况下,您可以稍微修改一下宏,以便它检查是否有空单元格。

Sub HideColumn2()

Dim rCell As Range     Set rCell = Range("B4")



Columns("H").EntireColumn.Hidden = False     If (Not IsEmpty(rCell)) _       And (IsNumeric(rCell)) _       And (rCell.Value = 0) Then         Columns("H").EntireColumn.Hidden = True     End If End Sub

此版本的宏实际上检查三个条件:B4不为空,它包含一个数值,并且该值为0。如果满足所有这三个条件,则H列被隐藏。

注意:

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

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

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