VBA隐藏所选图标和命名单元格之间的行



我是 VBA 的菜鸟,几天来我一直在努力让这个工作。我有多行项目组成一个总程序集。区域的顶行是程序集名称,底行是组成所有项的列的小计。我制作了一个图标,并将其插入到标题行中,我为其分配了一个宏,我想隐藏所选图标和"小计"行之间的行。我还希望它取消隐藏,以防我想查看这些项目。这在工作表上发生了数十次,我不断添加程序集,因此它不能是静态范围。此外,标题和小计行之间的项目(或行(数也有所不同。见附图。组装图片

以下是我到目前为止所写的内容,它在第一次实例发生在工作表上时效果很好。对于此组件下方的程序集,它隐藏的比我想要的要多。提前感谢您的帮助!!

Sub HideAssembly()
Dim F1 As Range, F2 As Range
Set F1 = ActiveSheet.Shapes(Application.Caller).TopLeftCell
Set F2 = Columns("C").Find(what:="ASSEMBLY SUB TOTAL", LookIn:=xlValues, 
lookat:=xlWhole)
If Rows(F1.Row + 1 & ":" & F2.Row - 1).Hidden = False Then
Rows(F1.Row + 1 & ":" & F2.Row - 1).Hidden = True
Else
Rows(F1.Row + 1 & ":" & F2.Row - 1).Hidden = False
End If
With ActiveSheet.Shapes.Range(Application.Caller).Select
Selection.ShapeRange.IncrementRotation 180
End With
SendKeys ("{ESC}")
End Sub

只是一个快速的想法 - 代替:

If Rows(F1.Row + 1 & ":" & F2.Row - 1).Hidden = False Then
Rows(F1.Row + 1 & ":" & F2.Row - 1).Hidden = True
Else
Rows(F1.Row + 1 & ":" & F2.Row - 1).Hidden = False
End If

写:

Rows(F1.Row + 1 & ":" & F2.Row - 1).Hidden= Not Rows(F1.Row + 1 & ":" & F2.Row - 1).Hidden

它做同样的事情。

最新更新