2017-02-14 47 views
2

我有一张名为“HideSheets”(单列)的工作表,该工作表添加或有时会将其删除。我如何引用表中如何基于表中的选项卡名称隐藏Excel工作簿中的工作表

Sub HideSheets() 
    Dim cell As Range 
    On Error Resume Next 
    For Each cell In Sheets("Index").Range("HideSheets") 
     ' Hide sheets 
     Sheets(cell.Value).Visible = False 

End Sub 
+1

'For Each'还必须在代码的底部有一个'Next'以便循环(即在'End Sub'之前) – CallumDA

回答

2

For Each还必须有一个Next命令

Sub HideSheets() 
    Dim r As Range 
    On Error Resume Next 
    For Each r In Sheets("Index").Range("HideSheets") 
     ' Hide sheets 
     Sheets(r.Value).Visible = xlSheetHidden 
    Next r 
End Sub 

而不是使用On Error Resume Next,检查这可能会导致一个错误,并与他们妥善处理条件。例如,返回一个错误,其解释如下(多个)错误发生的用户:

  1. 用户尝试隐藏所有片在工作簿
  2. r.Value不是有效的表名称。
+0

有关错误处理的更多信息,请访问:http://stackoverflow.com/问题/ 1038006 /好模式换VBA的错误处理 – CallumDA

相关问题