2017-02-14 6 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

'Для каждого' также должен иметь« Следующий »в нижней части кода, который должен быть закодирован (т.е. перед« 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/GOOD-модели-для-Vba-обработки ошибок – CallumDA

Смежные вопросы