如何用VBA在Excel中按相邻列特定值分组行,仅显示TRUE行?
VBA代码实现仅显示标记为TRUE的汇总行(隐藏FALSE行)
嘿,刚好能帮你解决这个分组汇总的需求!我写了一段VBA代码,专门用来隐藏那些标记为FALSE的O&D行,只留标记为TRUE的城市汇总行,这样你就能专注做分类汇总啦~
代码实现
Sub HideNonSummaryRows() Dim ws As Worksheet Dim lastRow As Long Dim i As Long Dim markerCol As String ' 标记列,比如你用的是D列就写"D" ' --- 请根据你的实际情况修改以下参数 --- Set ws = ThisWorkbook.Worksheets("你的工作表名称") ' 替换成你的工作表名,比如"市场数据" markerCol = "A" ' 替换成TRUE/FALSE所在的列,比如在E列就写"E" ' --- 参数修改结束 --- ' 获取数据区域的最后一行 lastRow = ws.Cells(ws.Rows.Count, markerCol).End(xlUp).Row ' 先取消所有行的隐藏状态,避免重复运行时出现遗漏 ws.Rows.Hidden = False ' 遍历每一行,隐藏标记为FALSE的行 For i = 1 To lastRow ' 如果你的TRUE/FALSE是逻辑值(不是文本),用这个判断 If ws.Cells(i, markerCol).Value = False Then ws.Rows(i).Hidden = True End If ' 要是你的标记是文本型的"FALSE",就把上面的判断换成下面这句: ' If ws.Cells(i, markerCol).Value = "FALSE" Then Next i MsgBox "搞定啦!所有标记为FALSE的行已经被隐藏", vbInformation End Sub
使用说明
- 打开你的Excel文件,按下
Alt + F11打开VBA编辑器 - 在左侧找到目标工作表,右键插入一个模块,把上面的代码粘贴进去
- 修改代码里的
"你的工作表名称"和markerCol参数,对应你实际的工作表和标记列 - 按下
F5运行代码,或者回到Excel里给这个宏添加一个按钮,方便以后一键调用
小补充(恢复显示所有行)
如果之后需要重新查看全部数据,运行这段简单代码即可:
Sub ShowAllRows() Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets("你的工作表名称") ws.Rows.Hidden = False End Sub
内容的提问来源于stack exchange,提问作者Saad Handoo
相关产品推荐
相关产品推荐

