2017-01-08 301 views
2

我想創建一個按鈕來隱藏和取消隱藏與VBA的特定組。該代碼我會隱藏或顯示所有組在指定級別:隱藏/取消隱藏特定組

Sub Macro1() 
ActiveSheet.Outline.ShowLevels RowLevels:=2 
End Sub 

可以說,我只是想取消隱藏第二組中的分組級別2我該怎麼辦呢?

+0

這裏有一個建議。在這篇文章中,您將獲得活動行的級別http://stackoverflow.com/questions/41528780/hide-unhide-specific-group#。您需要在行上循環,然後找到第二組的第一行和最後一行。然後測試該範圍是否隱藏。 –

+0

一羣什麼? – KyloRen

+0

一組將是​​具有相同級別的連續行。 –

回答

0

說「分組級別2中的第二組」是7-10行。然後,此代碼將取消隱藏該組:

ActiveSheet.Rows(10).ShowDetail = True 

但是,最好將其轉換爲可隱藏/取消隱藏組的切換功能。以下是一個通用切換功能(ToggleOutlineGroup),它允許您通過傳遞輪廓所在的工作表和行來隱藏/取消隱藏組。行可以是組中的任何行,只要它不是另一個子組的一部分。爲了簡單起見,我使用了該組的最後一行。 sub foo是如何調用函數的一個例子。

Sub foo() 

    ToggleOutlineGroup Sheet1, 10 

End Sub 


Sub ToggleOutlineGroup(sht As Worksheet, row As Long) 

    sht.Rows(row).ShowDetail = Not (sht.Rows(row).ShowDetail) 

End Sub