用VBA在Excel中隐藏行(14种方法)

  • Share This
Hugh West

在Excel中使用大型数据集时,有时我们需要隐藏一些特定的行,以提高可读性。 实现 VBA宏 是在Excel中运行任何操作的最有效、最快速和最安全的方法。 在这篇文章中,我们将向你展示如何将 利用VBA宏,根据不同的标准隐藏Excel中的行。

下载工作手册

你可以从这里下载免费的练习Excel工作簿。

用VBA隐藏行数.xlsm

用VBA在Excel中隐藏行的14种方法

在本节中,我们将讨论12种不同的方法,包括 VBA 隐藏行数 我们将在整篇文章中使用的例子如下所示。

1.嵌入VBA来隐藏Excel中的单行

如果你想 隐藏单行 VBA 在我们的案例中,我们将采取以下步骤 隐藏第5行 ( 姓氏 )来自我们的数据集。

步骤。

  • 新闻 Alt + F11 在你的键盘上,或进入标签 开发人员 -> Visual Basic 打开 Visual Basic编辑器 .

  • 在弹出的代码窗口中,从菜单栏中,点击 插入-> 模块 .

  • 复制以下代码并将其粘贴到代码窗口。
 Sub HideSingleRow() Worksheets("Single").Range("5:5").EntireRow.Hidden = True End Sub 

你的代码现在可以运行了。

在这里。

  • 工作表("Single") = 设置 工作表名称。
  • 范围("5:5") =通过 第5行 里面的 范围 方法。

  • 新闻 F5 在你的键盘上选择"",或从菜单栏中选择 运行-> 运行Sub/UserForm 你也可以直接点击 小的播放图标 子菜单栏中的 "运行宏"。

在下面的图片中注意到。 第5行 在执行了 VBA 代码。

阅读更多。 在Excel中隐藏行的公式(7种方法)

2.插入宏来隐藏Excel中的连续行

你已经学会了如何用以下方法来隐藏单行 VBA 但假设,你想 隐藏一系列的行 毗连的 你也可以用 VBA 在Excel中,我们将 隐藏 第5至7行 来自我们的数据集,如上图所示。

步骤。

  • 与之前的方法一样,打开 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口,复制以下代码并粘贴。
 Sub HideContiguousRows() Worksheets("Contiguous").Range("5:7").EntireRow.Hidden = True End Sub 

你的代码现在可以运行了。

在这里。

  • 工作表("相邻") = 设置 工作表名称。
  • 范围("5:7") =通过 行数5至7 里面的 范围 方法。

  • 运转 这段代码,并在下图中看到 第5至7行 现在被隐藏了。

阅读更多。 如何在Excel中隐藏和取消隐藏行(6种最简单的方法)

3.嵌入Macro以分离不连续的行

这一次,你将学习如何 隐藏行数 在Excel中是 不毗连的 VBA 有了我们的数据集,我们的代码就可以用于 隐藏 第5、6、8和9行 下文给出了答案。

步骤。

  • 如前所述,开放 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口,复制以下代码并粘贴。
 Sub HideNonContiguousRows() Worksheets("NonContiguous").Range("5:6, 8:9").EntireRow.Hidden = True End Sub 

你的代码现在可以运行了。

在这里。

  • 工作表("非连续") = 设置 工作表名称。
  • 范围("5:6, 8:9") =通过 第5至6行 8至9 里面的 范围 方法。

  • 运行 这段代码,并看到 第5行至第6行 8至9 隐藏在下图中。

阅读更多。 如何在Excel中隐藏行(6种有效方法)

4.隐藏Excel中所有包含文本的行的宏程序

如果你想 隐藏所有包含文本的行 价值,然后按照下面提供的步骤进行操作。

步骤。

  • 开放式 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口,复制以下代码并粘贴。
 Sub HideAllRowsContainsText() LastRow = 1000 '让我们假设数据集中有1000行 For i = 1 To LastRow '循环浏览每一行,检查所需的条件 '以隐藏所有带有文本数据的行 If IsNumeric(Range("C" & i)) = False Then Rows(i).EntireRow.Hidden = True Next End Sub 

你的代码现在可以运行了。

在这里。

  • IsNumeric(Range("C" & i)) =我们的数据集的数据从 C栏。 所以我们通过 C 里面的 范围 方法。

  • 运行 这段代码,你会发现 所有的行 属于 包含文本 值现在被隐藏了。

阅读更多。 如何在Excel中取消隐藏多条行(9种方法)

5.在Excel中隐蔽所有包含数字的行的宏程序

而如果你想隐藏 所有含有数字值的行 VBA 代码,然后按照下面提供的步骤进行操作。

步骤。

  • 开放式 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口,复制以下代码并粘贴。
 Sub HideAllRowsContainsNumbers() LastRow = 1000 '让我们假设数据集中有1000行 For i = 4 To LastRow '循环浏览每一行,检查所需的条件 '我们设置i = 4,因为我们的数据从第4行开始 '以隐藏所有带有数字数据的行 If IsNumeric(Range("C" & i)) = True Then Rows(i).EntireRow.Hidden = True Next End Sub 

你的代码现在可以运行了。

在这里。

  • IsNumeric(Range("C" & i)) =我们的数据集的数据从 C栏。 所以我们通过 C 里面的 范围 方法。

  • 运转 这段代码,并注意到 所有的行 属于 包含数字值 之前的情况现在被隐藏了。

阅读更多。 在Excel中隐藏基于一列的重复行(4种方法)

6.隐藏Excel中包含零(0)的行的宏程序

假设你想只隐藏某个特定列中的行,而这些行是 保持0(零)。 请看下面的数据集,其中的 E列 持有 0在 第7行 第10行82人 我们将学习如何 只隐藏持有0的那一行 ( 第7行 )与 VBA 在Excel中。

步骤。

  • 开放式 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口,复制以下代码并粘贴。
 Sub HideRowContainsZero() LastRow = 1000 '让我们假设数据集中有1000行 For i = 4 To LastRow '循环浏览每一行,检查所需的条件 '我们设置i = 4,因为我们的数据从第4行开始 '要隐藏E列中包含0的行 If Range("E" & i) = 0 Then Rows(i).EntireRow.Hidden = True Next End Sub 

你的代码现在可以运行了。

  • 运行 这段代码,并注意到该行( 第7行 ),其中含有 0 E栏 现在被隐藏了,而 第10行 携带的 82 是不隐藏的。

阅读更多。 如何在Excel VBA中隐藏空白行(4种实用方法)

7.在Excel中实施隐藏持有负值的行的宏程序

就像你可以隐藏同一列中包含零的行一样,你可以 隐藏持有负值的行 如下图所示的数据集,其中 E栏 同时包含负值和正值,我们将看到只隐藏负值的代码。

步骤。

  • 开放式 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口,复制以下代码并粘贴。
 Sub HideRowContainsNegative() LastRow = 1000 '让我们假设数据集中有1000行 For i = 4 To LastRow '循环浏览每一行,检查所需的条件 '我们设置i = 4,因为我们的数据从第4行开始 '要隐藏E列中含有负值的一行 If IsNumeric(Range("E" & i)) = True Then If Range("E" & i) <0 ThenRows(i).EntireRow.Hidden = True End If Next End Sub 

你的代码现在可以运行了。

  • 运行 这段代码,并注意到 第7行 其中包含一个 负值 (-10) E栏 现在被隐藏了,而 第10行 携带的 82 是不隐藏的。

8.在Excel中嵌入VBA以掩盖包含正值的数据行

这次是用下面的数据集,其中 E栏 包含两个零的正值,我们将看到 VBA 编码是指 只隐藏了正面的那个 .

步骤。

  • 开放式 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口,复制以下代码并粘贴。
 Sub HideRowContainsPositive() LastRow = 1000 '让我们假设数据集中有1000行 For i = 4 To LastRow '循环浏览每一行,检查所需的条件 '我们设置i = 4,因为我们的数据从第4行开始 '要隐藏E列中含有正值的一行 If IsNumeric(Range("E" & i)) = True Then If Range("E" & i)> 0 ThenRows(i).EntireRow.Hidden = True End If Next End Sub 

你的代码现在可以运行了。

  • 运转 这段代码,并注意到 第7行 其中包含一个 正值 (55) E栏 现在被隐藏了,而 第10行 携带的 0 是不隐藏的。

阅读更多。 VBA在Excel中根据单元格值隐藏行(14例)

9.隐藏Excel中含有奇数的行的宏程序

你可以 隐藏有奇数的行 在我们在本文开始时展示的例子中。 E栏 是同时持有奇数和偶数的 第7行和第10行 我们将学习 "中国 "的代码。 隐藏该行 掌握着 单数 只有。

步骤。

  • 开放式 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口,复制以下代码并粘贴。
 Sub HideRowContainsOdd() LastRow = 1000 '让我们假设数据集中有1000行 For i = 4 To LastRow '循环浏览每一行,检查所需的条件 '我们设置i = 4,因为我们的数据从第4行开始 '要隐藏E列中含有正值的一行 If IsNumeric(Range("E" & i)) = True Then If Range("E" & i) Mod 2 = 1 ThenRows(i).EntireRow.Hidden = True End If Next End Sub 

你的代码现在可以运行了。

  • 运行 这段代码,并看到,只有 第7行 其中包含一个 奇数 (55) E栏 现在被隐藏了,而 第10行 携带着一个 双数 (82) 是不隐藏的。

10.用VBA来隐藏Excel中包含偶数的行

同样地,你可以 隐藏有偶数的行 在我们在本文开始时展示的例子中。 F列 是同时持有奇数和偶数的 第7行和第10行 我们将学习 "中国 "的代码。 隐藏该行 掌握着 双数 只有。

步骤。

  • 开放式 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口,复制以下代码并粘贴。
 Sub HideRowContainsEven() LastRow = 1000 '让我们假设数据集中有1000行 For i = 4 To LastRow '循环浏览每一行,检查所需的条件 '我们设置i = 4,因为我们的数据从第4行开始 '要隐藏F列中含有正值的一行 If IsNumeric(Range("F" & i)) = True Then If Range("F" & i) Mod 2 = 0 ThenRows(i).EntireRow.Hidden = True End If Next End Sub 

你的代码现在可以运行了。

  • 运行 这段代码,并看到,只有 第7行 其中包含一个 双数(100) F列 现在被隐藏了,而 第10行 携带着一个 奇数 (75) 是不隐藏的。

阅读更多。 揭秘Excel VBA:取消隐藏所有行(5个实用例子)

11.插入宏来隐藏大于特定条件的行

你可以 隐藏大于的行 一个特定的值与 VBA 假设你想将行从 E栏 其中值为 大于80 这里是如何做到这一点的。

步骤。

  • 开放式 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口,复制以下代码并粘贴。
 Sub HideRowContainsGreater() LastRow = 1000 '让我们假设数据集中有1000行 For i = 4 To LastRow '循环浏览每一行,检查所需条件 '我们设置i = 4,因为我们的数据从第4行开始 '要隐藏E列中含有正值的一行 If IsNumeric(Range("E" & i)) = True Then If Range("E" & i)> 80 ThenRows(i).EntireRow.Hidden = True End If Next End Sub 

你的代码现在可以运行了。

  • 运行 这段代码,并看到,只有 第10行 其中包括 82 (大于80),在 E栏 现在被隐藏了,而 第7行 携带的 55 是不隐藏的。

阅读更多。 在Excel中使用条件格式化根据单元格值隐藏行

12.在Excel中嵌入宏以覆盖小于特定条件的行

你也可以 隐藏小于以下的行 一个特定的值与 VBA 假设你想将行从 E栏 其中值为 低于80 这里是如何做到这一点的。

步骤。

  • 开放式 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口,复制以下代码并粘贴。
 Sub HideRowContainsLess() LastRow = 1000 '让我们假设数据集中有1000行 For i = 4 To LastRow '循环浏览每一行,检查所需的条件 '我们设置i = 4,因为我们的数据从第4行开始 '要隐藏E列中含有正值的一行 If IsNumeric(Range("E" & i)) = True Then If Range("E" & i) <80 ThenRows(i).EntireRow.Hidden = True End If Next End Sub 

你的代码现在可以运行了。

  • 运行 这段代码,并看到,只有 第7行 其中包括 55 (小于80),在 E栏 现在被隐藏了,而 第10行 就是说 携带 82 是不隐藏的。

13.用宏来掩盖基于单元格文本值的行

假设你想 隐藏持有特定文本的行 在我们的例子中,我们将给你一个包含""字样的行的例子。 化学 ", 第6行 并向你提供如何隐藏该行的代码。

步骤。

  • 开放式 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口,复制以下代码并粘贴。
 Sub HideRowCellTextValue() StartRow = 4 LastRow = 10 iCol = 4 For i = StartRow To LastRow If Cells(i, iCol).Value "Chemistry" Then Cells(i, iCol) .EntireRow.Hidden = False Else Cells(i, iCol) .EntireRow.Hidden = True End If Next i End Sub 

你的代码现在可以运行了。

在这里。

  • StartRow = 4 -> 第一行 的数据集。
  • LastRow = 10 -> 最后一排 的数据集。
  • iCol = 4 -> 该 栏目地址 持有的文本 价值。

  • 运行 这段代码,并注意到 第6行 其中包括""一词。 化学 "被隐藏。

14.Excel中基于单元格数值隐藏行的宏

之前你已经看到了如何根据单元格的文本值来隐藏一行,这次你将学习如何在 值是数字的 在我们的案例中,我们将给你一个包含数字值""的行的例子。 87 ", 第7行 并向你提供如何隐藏该行的代码。

步骤。

  • 开放式 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口,复制以下代码并粘贴。
 Sub HideRowCellNumValue() StartRow = 4 LastRow = 10 iCol = 4 For i = StartRow To LastRow If Cells(i, iCol).Value "87" Then Cells(i, iCol) .EntireRow.Hidden = False Else Cells(i, iCol) .EntireRow.Hidden = True End If Next i End Sub 

你的代码现在可以运行了。

在这里。

  • 开始行 = 4 -> 第一行 的数据集。
  • LastRow = 10 -> 最后一排 的数据集。
  • iCol = 4 -> 该 栏目地址 持有的文本 价值。

  • 运行 这段代码,并注意到 第7行 其中包括数字值" 87 "被隐藏。

阅读更多。 如何在Excel中根据单元格值隐藏行(5种方法)

总结

这篇文章告诉你如何 隐藏行数 在Excel中用 VBA 我希望这篇文章对你非常有益。 如果你对这个主题有任何疑问,请随时提问。

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.