我想使用VBA遍历特定的工作表,以便在隐藏时取消隐藏它们。 我想使用工作表的代号,而不是索引或名称。
我已经尝试过类似的操作,但是它在行上返回错误“ object required”
如果HiddenSheets(sCounter).Visible = xlSheetHidden然后
***新信息:我正在单独的工作簿中编写此代码。我为该工作簿WB_Master创建了一个变量。也许我应该使用此变量以某种方式从该工作簿中调用工作表?
Dim HiddenSheets As Variant
Dim sCounter As Long
HiddenSheets = Array(Sheet4, Sheet5, Sheet6, Sheet25, Sheet26, Sheet27, Sheet33)
For sCounter = LBound(HiddenSheets) To UBound(HiddenSheets)
If HiddenSheets(sCounter).Visible = xlSheetHidden Then
HiddenSheets(sCounter).Visible = xlSheetVisible
End If
Next sCounter
答案 0 :(得分:0)
您仍然可以在单独的工作簿中使用图纸的代号:
将代码名作为字符串存储在HiddenSheets
循环浏览您的单独工作簿工作表,并检查其CodeName
是否位于HiddenSheets
如下:
Sub UnHideSheets()
Dim HiddenSheets As Variant
HiddenSheets = Array("Sheet4", "Sheet5", "Foglio2", "Sheet25", "Sheet26", "Sheet27", "Sheet33") ' store codenames as strings
Dim sh As Worksheet
For Each sh In Workbooks("WB_Master").Worksheets ' loop through your "separate" workbook worksheets (change "WB_Master" to your actual "separate" workbook name)
If Not IsError(Application.Match(sh.CodeName, HiddenSheets, 0)) Then sh.Visible = xlSheetVisible
Next
End Sub