You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Excel VBA宏实现多行的隐藏与取消隐藏功能?

修改VBA宏以批量隐藏/取消隐藏多行

你可以通过定义包含所有目标行的Range对象来实现批量操作,具体修改如下:

修改后的完整代码

Sub Cloud_Click()

Dim ws As Worksheet
Dim targetRows As Range
Set ws = ThisWorkbook.Worksheets("Sheet1")
' 定义需要操作的多行,可根据需求添加或移除行号
Set targetRows = Union(ws.Rows(5), ws.Rows(10), ws.Rows(15), ws.Rows(20), ws.Rows(22), ws.Rows(26))

If ws.Shapes("Cloud 2").TextFrame2.TextRange.Text = "openen" Then
    ws.Shapes("Cloud 2").TextFrame2.TextRange.Text = "verbergen"
    targetRows.Hidden = False
Else
    ws.Shapes("Cloud 2").TextFrame2.TextRange.Text = "openen"
    targetRows.Hidden = True
End If

End Sub

关键说明

  • 使用Union函数可将多个不连续行合并为一个Range对象,实现一次性对所有目标行执行隐藏/取消隐藏操作
  • 若后续需调整目标行,只需在Union中继续添加ws.Rows(行号)即可,比如要加入第30行,修改为Set targetRows = Union(ws.Rows(5), ws.Rows(10), ..., ws.Rows(30))
  • 也可直接用逗号分隔的行号字符串写法:Set targetRows = ws.Rows("5,10,15,20,22,26"),效果与Union一致,两种写法任选其一即可

内容的提问来源于stack exchange,提问作者Jeffrey van Malssen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 05:33:09