我想编写一个 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 子项,我希望每次隐藏一列时,其他工作表中的相应列也会自动隐藏。但是,到目前为止这种情况还没有发生,其他工作表中的列不会自动隐藏自己。
我可以知道这里可能有什么问题吗?如果需要任何进一步的信息,请随时告诉我。任何帮助将不胜感激!先感谢您!