2016-05-17 3 views
1

Microsoft Excel 2010 имеет Sheet1, Sheet2, Sheet3.Как скрыть лист с помощью VBA?

На листе 1 страница заблокирована. Он содержит поля, которые ссылаются на Sheet3.

Например, Sheet1 на A2 имеет название «Имя» и B2 имеет = Sheet3! B2.

На листе3, A2 имеет название «Имя», а B2 пусто, если пользователь не заполняет его. Конечно, Sheet3 Cell B2 автоматически заполняется в Sheet1.

На листе 3 у меня есть больше похожих полей, которые могут быть изменены пользователями, такими как адрес и номер телефона. Тем не менее, я хотел бы скрыть Sheet3, создав кнопку, которая скрывает Sheet3 после щелчка. Я не хочу, чтобы люди отправляли по электронной почте этот файл, чтобы увидеть этот Sheet3 со всей информацией об этом. Это запутает автоматизированные системы.

Я исследовал все, что мог, и нашел некоторые коды, которые скрывают лист после ввода информации в определенное поле, но я не был уверен, как применить этот код к кнопке. Цель этой кнопки заключается не в том, что мои пользователи обладают техническими навыками, поэтому это быстрый способ позволить им скрыть лист без суеты. Кнопка также будет работать на Sheet3.

Я нашел код, который может помочь, если кто-то знает некоторые VBA, чтобы преобразовать его в использование кнопки. Этот код говорит B6 и B7, скрыть лист. Я действительно потерял, как использовать команду нажатия кнопок с этой почти близкой формулой.

Sub ShowHideWorksheets() 
Dim Cell As Range 
For Each Cell In Range("B6:B7") 
ActiveWorkbook.Worksheets(Cell.Value).Visible = Not 
ActiveWorkbook.Worksheets(Cell.Value).Visible 
Next Cell 
End Sub 

ответ

2

почти, попробуйте:

ActiveWorkbook.Worksheets(Cell.Value).Visible = xlSheetHidden 

или если вы хотите, чтобы скрыть лист, и не позволяют пользователю видеть его в коллекцию скрытых листов:

ActiveWorkbook.Worksheets(Cell.Value).Visible = xlSheetVeryHidden 
Смежные вопросы