excel - 基于矩阵隐藏/取消隐藏Excel工作表

标签 excel vba loops hide

我有一个可以工作的宏,但它不是很有效,可以做得更好。
我只是在一行中有一个包含所有工作表名称的列表(它们可以更改,因此它需要是动态的),在下一行中我有一个“是/否”的答案,显示是否应该隐藏工作表。
例子:
表 1、表 2、表 3、表 4、
是的,是的,不是的,是的
到目前为止我的代码:

Sub HidingSheets()

'Checking the first sheet
'-------------------------------------------------------------------------------------------
Sheets(Worksheets("Sheet1").Range("E9").Value).Visible = True
Sheets(Worksheets("Sheet1").Range("E9").Value).Activate

If ActiveSheet.Range("A1") = "NO" Then
    ActiveSheet.Visible = False
End If
'-------------------------------------------------------------------------------------------

'Checking the second sheet
'-------------------------------------------------------------------------------------------
Sheets(Worksheets("Sheet1").Range("F9").Value).Visible = True
Sheets(Worksheets("Sheet1").Range("F9").Value).Activate

If ActiveSheet.Range("A1") = "NO" Then
    ActiveSheet.Visible = False
End If
'-------------------------------------------------------------------------------------------

End Sub
我基本上是在每张纸上手动而不是在循环中进行操作,这也要求我需要在每张纸上显示“是/否”(“如果”公式检查 A1 = “否”)。单元格 A1 中显示的“是/否”取自我之前解释过的矩阵。
注意:矩阵可以“转置”,它的方向无关紧要。
如果您能帮助我,请提前感谢您。
我的第二次尝试是这样的:
Sub Hiding2()

Dim i As interger

For i = 1 To 10

    a = ActiveSheet.Range("E9").Value

    If Offset(a(1, 0)) = YES Then
        Sheets(a).Visible = True
    Else
       Sheets(a).Visible = False
    End If

Next i

End Sub
但我不知道如何引用我需要的单元格,然后让它们为每个“i”移动。

最佳答案

Sub HideWorksheets()
    Dim Cell As Range
    Dim Data As Range: Set Data = Worksheets("Sheet1").Range("E9:N9")
    On Error Resume Next
    For Each Cell In Data
        Worksheets(Cell.value).Visible = IIf(Cell.Offset(1, 0) = "YES", xlSheetHidden, xlSheetVisible)
    Next Cell
End Sub

关于excel - 基于矩阵隐藏/取消隐藏Excel工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63844917/

相关文章:

vba - 程序太大

excel - 为具有匹配文本的单元格着色

java - ArrayList不添加对象?

vba - 为什么我无法从该集合的成员获取属性?

java - 如何在java中打印反向数字图案三角形

c - C 中的 While 循环

vba - 使用 CURRENTREGION 函数通过 VBA 使用现有数据创建表

sql-server - 通过参数化存储过程将数据从 Azure SQL 数据库提取到 Excel 中

excel - 让单元格在 "loop"中引用自己的值

excel - 如何使用 VBA for Excel for MacOS 创建文本文件