使用“工作表”选项卡作为展开/折叠一组选项卡的button

我正在使用以下代码(来自专家交换站点 ):

Private Sub Worksheet_Activate() Dim sheet As Worksheet Application.ScreenUpdating = False If ShowHide.Name = "Show My Guts" Then 'Make all sheets visible For Each sheet In ThisWorkbook.Sheets sheet.Visible = xlSheetVisible Next sheet 'Change the sheet name to the "Collapse" name you want ShowHide.Name = "Hide My Guts" 'Pick a sheet to display after the once hidden sheets are expanded Sheet4.Activate Else 'Hide all sheets except the ones you want to keep visible For Each sheet In ThisWorkbook.Sheets If (sheet.Name <> Results.Name And sheet.Name <> Run.Name And sheet.Name <> ShowHide.Name) Then sheet.Visible = xlSheetVeryHidden End If Next sheet 'Change the sheet name to the "Expand" name you want ShowHide.Name = "Show My Guts" 'Pick a sheet to display after the sheets to be hidden are collapsed Run.Activate End If Application.ScreenUpdating = True End Sub 

我已经将“Show My Guts”名称重命名为我的工作表名称,并通过修改“Sheet4.Activate”选项来select不同的表单来激活,但是当保存macros时会popup一个对话框,提示“运行时错误424对象需要”当我点击对话框上的“debugging”时,就行了

 If ShowHide.Name = "Show My Guts" Then 

突出显示。

我尝试使用代码没有任何modofication,它仍然给我同样的错误。

代码中有什么错误?

ShowHide是他给表单的“vba名字”。 “技术名称”和“显示名称”之间有区别

一个小小的截图超过文字: 技术名称和显示名称之间的区别

因此,在VBA中,您必须将要“ShowHide”的工作表重命名为“ShowHide”,或者以不同的方式对其进行命名,并通过您的新select更改VBA代码中的ShowHide

更新:你必须修改你的代码

 ' ShowHide to rename (or rename your sheet under vba with ShowHide) If ShowHide.Name = "Show My Guts" Then ... ' ShowHide to rename (or rename your sheet under vba with ShowHide) ShowHide.Name = "Hide My Guts" Else For Each sheet In ThisWorkbook.Sheets ' ShowHide to rename (or rename your sheet under vba with ShowHide) If (sheet.Name <> Results.Name And sheet.Name <> Run.Name And sheet.Name <> ShowHide.Name) Then ... End If Next sheet ' ShowHide to rename (or rename your sheet under vba with ShowHide) ShowHide.Name = "Show My Guts" ... End If