Table of contents
在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 我希望这篇文章对你非常有益。 如果你对这个主题有任何疑问,请随时提问。