Excel 隐藏列与使用VBA隐藏选项卡?

Excel 隐藏列与使用VBA隐藏选项卡?,excel,tabs,hide,vba,Excel,Tabs,Hide,Vba,在表1中,我有一个单独的列数组,这些列从各自的选项卡中绘制引用。所以在第32列,它将引用第32页。但是,我不需要一直看到所有的表和列。我需要一些帮助,了解如何在隐藏/取消隐藏选项卡时隐藏/取消隐藏列?如果您正在手动隐藏和取消隐藏工作表,它们将在隐藏/取消隐藏时停用和激活 因此,请使用停用和激活事件来处理操作 类似(将代码放入此工作簿模块) 工作表停用时隐藏列 私有子工作簿(ByVal Sh作为对象) 如果Sh.CodeName“Sheet1”,则 如果Sh.Visible=xlSheetHidd

在表1中,我有一个单独的列数组,这些列从各自的选项卡中绘制引用。所以在第32列,它将引用第32页。但是,我不需要一直看到所有的表和列。我需要一些帮助,了解如何在隐藏/取消隐藏选项卡时隐藏/取消隐藏列?

如果您正在手动隐藏和取消隐藏工作表,它们将在隐藏/取消隐藏时停用和激活

因此,请使用停用和激活事件来处理操作

类似(将代码放入
此工作簿
模块)

工作表停用时隐藏列 私有子工作簿(ByVal Sh作为对象) 如果Sh.CodeName“Sheet1”,则 如果Sh.Visible=xlSheetHidden,则 Sheet1.列(Sh.Index).Hidden=True 如果结束 如果结束 端接头 '工作表激活时显示列 专用子工作簿(ByVal Sh作为对象) 如果Sh.CodeName“Sheet1”,则 如果Sh.Visible=xlSheetVisible,则 Sheet1.列(Sh.Index).Hidden=False 如果结束 如果结束 端接头
注:我假设表索引和列编号是对齐的。根据需要进行调整,以适应实际的工作簿布局。

我假设您需要处理隐藏工作表时触发的事件。但是,我没有看到与此相关的事件。我想不出别的办法了。
' Hide column when sheet is deactivated
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    If Sh.CodeName <> "Sheet1" Then
        If Sh.Visible = xlSheetHidden Then
            Sheet1.Columns(Sh.Index).Hidden = True
        End If
    End If
End Sub

' Show column when sheet is activated
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    If Sh.CodeName <> "Sheet1" Then
        If Sh.Visible = xlSheetVisible Then
            Sheet1.Columns(Sh.Index).Hidden = False
        End If
    End If

End Sub