Note: The other languages of the website are Google-translated. Back to English

如果列中有空白单元格,如何自动隐藏行?

现在,如果您拥有一系列填充一列中某些空白单元格的数据,那么您想自动隐藏包含该列中空白单元格的行。 有什么好方法可以快速,轻松地在Excel中解决此工作?

如果具有VBA代码的列中的空白单元格,则自动隐藏行


箭头蓝色右气泡 如果具有VBA代码的列中的空白单元格,则自动隐藏行

如果特定列中的空白单元格一次出现,下面的代码可以帮助您隐藏所有行;如果删除该列中的单元格内容,行也将自动隐藏。 请执行以下操作:

1。 如果某列中有空白单元格,请在要自动隐藏行的工作表选项卡上单击鼠标右键,然后选择 查看代码 从上下文菜单中,弹出 Microsoft Visual Basic应用程序 窗口,请复制以下代码并将其粘贴到空白处 模块:

VBA代码:如果列中的空白单元格,则自动隐藏行:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    Dim xRg As Range
    Application.ScreenUpdating = False
        For Each xRg In Range("A1:A20")
            If xRg.Value = "" Then
                xRg.EntireRow.Hidden = True
        
            Else
                xRg.EntireRow.Hidden = False
            End If
        Next xRg
    Application.ScreenUpdating = True
End Sub

doc自动隐藏第1行

备注:在上面的代码中, A1:A20 是数据列表,其中包含您要自动隐藏的空白单元格。

2。 然后返回工作表,现在,当您双击任何单元格并按 输入 键,包含在A列中空白单元格的行已被立即隐藏,如果您清除了A列的指定单元格中的任何单元格内容,则这些行将自动隐藏。

doc自动隐藏第2行

 


最佳办公效率工具

Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%

  • 重用: 快速插入 复杂的公式,图表 以及您以前使用过的任何东西; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 超级公式栏 (轻松编辑多行文本和公式); 阅读版式 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不会丢失数据; 拆分单元格内容; 合并重复的行/列...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级滤镜 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 超过300种强大功能. 支持 Office / Excel 2007-2021 和 365。支持所有语言。 在您的企业或组织中轻松部署。 完整功能 30 天免费试用。 60 天退款保证。
kte选项卡201905

Office选项卡为Office带来了选项卡式界面,使您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部

 

按评论排序
注释 (32)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
嗨,我正在使用 excel 2016,但它无法正常工作。 我收到一条 sintax 错误消息。 你能帮我吗?
该评论由网站上的主持人最小化
你好,蚂蚁,

上面的代码在我的 Excel 2016 中运行良好,您是否根据需要更改了代码中的单元格引用?
该评论由网站上的主持人最小化
我收到运行时错误“13”:



类型不匹配



谁能帮忙???
该评论由网站上的主持人最小化
按回车后我可以阻止这个宏自动运行吗? 我可以将它附加到按钮上以仅在单击时隐藏单元格吗?
该评论由网站上的主持人最小化
有没有人弄清楚这一点? 我也想知道。
该评论由网站上的主持人最小化
有人想出答案了吗?
该评论由网站上的主持人最小化
同样的问题在这里
该评论由网站上的主持人最小化
大家好,
要使用按钮隐藏特定列包含空白单元格的行,请执行以下操作:
首先,您应该从“开发人员”选项卡中插入一个命令按钮。
然后为命令按钮应用以下 VBA 代码,(注意:请将单元格引用 a1:a20 更改为您自己的)

私有子 CommandButton1_Click()
调暗为范围,x 为范围
设置 rng = Range("a1:a20")
Application.ScreenUpdating = False
对于每个 x In rng
如果 Len(x.Text) = 0 那么
x.EntireRow.Hidden = True
其他
x.EntireRow.Hidden = 假
结束如果
下一个x
Application.ScreenUpdating =真
END SUB

请尝试一下,希望对您有所帮助!
查看附件 (1 / 5)
该评论由网站上的主持人最小化
如果使用 VBA 代码的 2 个不同列中的空白单元格如何自动隐藏行
该评论由网站上的主持人最小化
嗨,萨尔佩,
要自动隐藏 2 个不同列中的空白单元格的行,请应用以下代码:

私人子Worksheet_Change(按目标的ByVal目标)
将 xRg、xCell 调暗为范围
将 xRgs、xRgArea 调暗为范围
设置 xRgs = Range("A1:A22,D1:D22")
Application.ScreenUpdating = False
出错时转到 Ctn
对于 xRgs.Areas 中的每个 xRgArea
调试打印xRgArea.Address
对于 xRgArea.Columns 中的每个 xRg
对于 xRg.Rows 中的每个 xCell
如果 xCell.Value = "" 那么
xCell.EntireRow.Hidden = True
转到 Ctn
ElseIf Not xCell.EntireRow.Hidden 然后
xCell.EntireRow.Hidden = 假
结束如果
货号:
下一页
下一页
下一页
Application.ScreenUpdating =真
END SUB

您可以根据需要更改单元格引用。
请尝试一下!
该评论由网站上的主持人最小化
Ellااجزكككذg°ذاااال激,ككئئئئححححققmitift
该评论由网站上的主持人最小化
我想知道如果单元格由于公式而为空白,代码是否有效?
该评论由网站上的主持人最小化
你好,阿钦塔,
上面的 VBA 代码也适用于公式结果的空白单元格,您可以尝试一下,谢谢!
该评论由网站上的主持人最小化
该公式在开始时根据信息隐藏单元格,但如果单元格的内容发生变化,则不会重新显示单元格。 我希望它显示任何已填充信息的新单元格(通过单元格查找发生)。 我该怎么做呢?
该评论由网站上的主持人最小化
Bom dia, esta é minha necessidade também。

Preciso ocultar e quando a célula for preenchida (uso uma fórmula que preenche a mesma se houver valor em outra planilha) seja reexibida a linha novamente de forma automática。

心存感激。
该评论由网站上的主持人最小化
我想要的是这样的东西在活动表中工作:

如果单元格 D2:D55 = ""
然后 Hide.EntireRow

如果单元格 D2:D55 = “有任何值”
然后 Show.EntireRow

怎么样做?
该评论由网站上的主持人最小化
您好,Kacha,您只需将代码中的单元格引用更改为您自己的单元格范围,如下所示: Private Sub Worksheet_Change(ByVal Target As Range)
'更新通过 Extendoffice
将 xRg 调暗为范围
Application.ScreenUpdating = False
对于范围内的每个 xRg("D2:D55")
如果 xRg.Value = "" 那么
xRg.EntireRow.Hidden = True

其他
xRg.EntireRow.Hidden = 假
结束如果
下一个 xRg
Application.ScreenUpdating =真
End Sub 插入代码后,请记得双击任意单元格并按回车键使代码生效。
该评论由网站上的主持人最小化
撤消自动隐藏的最简单方法是什么?
该评论由网站上的主持人最小化
嗨,mình có dùng 2 code trong 1 file excel (1 code là của bạn) với mục đích in ra những bản riêng biệt và không bị thừa dòng trống。 Khi mình ấn in từng bản thì ok nhưng nếu in 1 loạt thì 代码 隐藏 không có tác dụng, bạn xem giúp mình với nhé, mình cảmơn!

子 PRINT_PRINT()
调暗为范围,x 为范围
设置 rng = Range("a16:a23")
Application.ScreenUpdating = False
对于每个 x In rng
如果 Len(x.Text) = 0 那么
x.EntireRow.Hidden = True
其他
x.EntireRow.Hidden = 假
结束如果
下一个x
Application.ScreenUpdating =真


调暗 p1、p2、i&
p1 = Sheet1.Range("O1").Value
p2 = Sheet1.Range("O2").Value
如果 IsNumeric(p1) = False 或 IsNumeric(p2) = False 那么
tb = MsgBox("So code phai la so.", , "Thông báo")
退出小组
结束如果
如果 p1 > p2 那么
tb = MsgBox("So code sau phai >= so code truoc.", , "Thông báo")
退出小组
结束如果
如果 p1 < 1 或 p2 < 1 那么
tb = MsgBox("So code phai >= 1.", , "Thông báo")
退出小组
结束如果
如果 p1 <= p2 那么
对于 i = p1 到 p2
Sheet1.Range("M2").Value = i
Sheet1.打印输出
下一页
结束如果
END SUB
该评论由网站上的主持人最小化
Hola,Necesito crear una macro que me oculte una columna.Sería así: en la primea fila poner un 1 a las columnas que no quiero ocultar y no poner ningún valor a las columnas que quiero ocultar。 Estoy haciendo el siguiente código, pero no se en que fallo:
子 OcultarColumnaSin1()
Application.ScreenUpdating = False
对于列中的每个范围
如果兰戈=“”那么
rango.EntireColumn.Hidden = True
其他
rango.EntireColumn.Hidden = 假
结束如果
下一个兰戈
Application.ScreenUpdating =真
END SUB
该评论由网站上的主持人最小化
这对我来说非常有用,它隐藏行并在我的值根据公式更改时打开它们。 我的问题是我的工作表有 104 行长。 每次我单击一个单元格时,它都会搅动一下。 有什么方法可以在激活时加快过渡速度? 还是我的电脑?谢谢!
该评论由网站上的主持人最小化
如果 E 列为空白或 0,我想自动隐藏行
该评论由网站上的主持人最小化
如果 E 列中的值为空白或 0,我希望该行自动隐藏。 如果 E 中的值更改为空白或 0 以外的值,我希望它显示。 报告为 1500 行
该评论由网站上的主持人最小化
你好,凯茜,
要根据空白单元格或 0 值自动隐藏行,请使用以下 vba 代码:
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    Dim xRg As Range
    Application.ScreenUpdating = False
        For Each xRg In Range("E1:E1500")
            If (xRg.Value = "") Or (xRg.Value = "0") Then
                xRg.EntireRow.Hidden = True
            Else
                xRg.EntireRow.Hidden = False
            End If
        Next xRg
    Application.ScreenUpdating = True
End Sub


请尝试,希望对您有所帮助!
该评论由网站上的主持人最小化
如何隐藏包含复选框的行?
该评论由网站上的主持人最小化
你好,斯威塔

要使用复选框隐藏行,下面的文章可能会对您有所帮助:
Excel中隐藏行时如何隐藏复选框?

请尝试,如果您还有其他问题,请在此处发表评论。
该评论由网站上的主持人最小化
在 office 2013/2019/2021 中执行代码时,它可以工作,但需要花费太多时间才能完成(仅隐藏 95 行)。
你怎么能加快这个速度?
谢谢!
该评论由网站上的主持人最小化
嗨,阿萨夫,
该代码在我的 Excel 文件中运行良好,如果您不介意,可以在这里上传您的附件工作簿吗? 以便我们可以帮助检查问题。

谢谢!
该评论由网站上的主持人最小化
apakah ada rumus lain?, saya berharap baris kosong itu akan terhapus saat mencetak 文件 menjadi PDF tapi tampilan di excelnya tetap
该评论由网站上的主持人最小化
你好,努尔佳娜
要解决您的问题,首先应隐藏空白行,然后打印数据,打印数据后,您需要再次取消隐藏空白行。 请这样做:
1. 应用这个公式:=COUNTA(A2:E2) 在你的数据旁边,看截图:
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-hide-blanks-1.png
2. 然后,过滤新的辅助空白列,隐藏所有 0 值行,看截图:
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-hide-blanks-2.png
3.然后,您应该隐藏新的空白列,并打印数据,打印工作表后,请根据需要取消过滤以取消隐藏空白行。
请尝试,希望对您有所帮助!
该评论由网站上的主持人最小化
您好,我对宏的“自动化”有疑问。 我正在寻找一种方法,让代码作为一个自动化过程工作,而不需要“手动”运行宏。 由于我发现使用您的代码存在问题,因此我一直在使用您自己的代码变体。 这是我的变体:

子隐藏行()
将 xRg 调暗为范围
Application.ScreenUpdating = False
对于范围内的每个 xRg("A3:A800")
如果 (xRg.Value = "") 那么
xRg.EntireRow.Hidden = True
其他
xRg.EntireRow.Hidden = 假
结束如果
下一个 xRg
Application.ScreenUpdating =真
END SUB

我正在尝试创建一个需要不断变化的值的电子表格,因此需要一个真正的“自动化”过程。 我对 VBA 比较陌生,如果您的代码实际上已经满足我的要求,您介意帮助/教我在 VBA 中应用它吗? 谢谢。
该评论由网站上的主持人最小化
你好,维安
其实我们文章中的代码是可以自动运行的。
您必须将代码复制并粘贴到当前工作表的代码模块中,然后返回工作表,双击任意单元格,然后按 输入 键,包含空白单元格的行将被直接隐藏。

请按照本文的方法一步一步来,希望对您有所帮助!
谢谢!
这里还没有评论
留下你的意见
以访客身份发帖
×
评价此帖子:
0   产品特性
建议地点

关注我们

版权所有 © 2009 - extendoffice.com。 | 版权所有。 供电 ExtendOffice。 | 网站地图
Microsoft和Office徽标是Microsoft Corporation在美国和/或其他国家的商标或注册商标。
受Sectigo SSL保护