小编a93*_*02c的帖子

如何自动隐藏其他工作表中的列

我想编写一个 VBA 函数,以便当隐藏“主”工作表中的列时,所有其他工作表中的同一列(同名)也被隐藏。以下是我的“主”表代码中的内容:

Private Sub Worksheet_Change(ByVal Target As Range)    
    Dim i As Integer, ws As Worksheet

    If IsEntireColumn(Target) = True Then    
        If Target.Hidden = True Then

            For i = 1 To Target.Columns.Count
                For Each ws In ThisWorkbook.Worksheets
                    If ws.Name = "Master" Or ws.Name = "Affiliate Codes" Then
                    Else
                        ws.Cells(1, ColumnIndexReturn(ws.Name, Target.Cells(1, i), 3)).EntireColumn.Hidden = True
                    End If
                Next ws
            Next i 

        End If    
    End If    

End Sub
Run Code Online (Sandbox Code Playgroud)

对于上下文,IsEntireColumn 是一个布尔函数,True如果所选范围确实是整个列,则返回该函数,而 ColumnIndexReturn 是另一个按列名称返回列索引的函数。

由于这是一个 Worksheet_Change 子项,我希望每次隐藏一列时,其他工作表中的相应列也会自动隐藏。但是,到目前为止这种情况还没有发生,其他工作表中的列不会自动隐藏自己。

我可以知道这里可能有什么问题吗?如果需要任何进一步的信息,请随时告诉我。任何帮助将不胜感激!先感谢您!

excel vba

0
推荐指数
1
解决办法
106
查看次数

标签 统计

excel ×1

vba ×1