0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как автоматически скрыть определенные рабочие листы при открытии файла Excel?

Трюк №3. Запрещение пользователям выполнять определенные действия

В дополнение к общей защите рабочих книг и листов в Excel, этот грубый инструмент не может предоставлять ограниченные привилегии пользователям, если вы не примените некоторые хитрости.

Наблюдая за событиями, можно управлять электронными таблицами, наблюдая за взаимодействием пользователей. Работа в рабочих книгах и листах приводит к возникновению событий. Открытие, сохранение и закрытие рабочей книги — самые распространенные действия. Когда происходят эти события, Excel может автоматически запустить некоторый код Visual Basic.

Отключение в рабочей книге команды Сохранить как

Можно сделать так, чтобы все рабочие книги сохранялись в режиме «только для чтения». Для этого в настройках Файл → Сохранить (File → Save) нужно установить флажок Только для чтения (Read-only recommended). Так вы запретите пользователю сохранять изменения, которые он может внести в файл. Пользователь сможет сохранить измененный файл только под другим именем или в другой папке.

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

Событие Before Save, которое вы будете использовать в следующем коде, было впервые создано в Excel 97. Как следует из названия, это событие происходит до сохранения рабочей книги, поэтому вы можете поймать действия пользователя до того, как они произойдут, выдать предупреждение и не дать Excel сохранить файл.

Читайте так же:
Как быстро извлечь часть даты из ячейки в Excel?

// Листинг 1.3 Private Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim lReply As Long If SaveAsUI = True Then lReply = MsgBox("К сожалению, вы не можете сохранить эту книгу под этим имеенм. " _ & "Сохранить под другим именем?.", vbQuestion + vbOKCancel) Cancel = (lReply = vbCancel) If Cancel = False Then Me.Save Cancel = True End If End Sub

Проверьте, что получилось. Выберите команду Файл → Сохранить (File → Save); ваша рабочая книга будет сохранена. Выбрав команду Файл → Сохранить как (File → Save As), вы увидите сообщение о том, что эту книгу запрещено сохранять под другим именем.

Запрет печати рабочей книги

Иногда требуются разрешения, чтобы запретить пользователям печатать рабочие книги, тем самым устраняя вероятность того, что они станут мусорными или общедоступными. С помощью события Excel Before Print можно отслеживать и предотвращать действия пользователей. Как и раньше, введите в VBE код из листинга 1.4.

// Листинг 1.4 Private Sub workbook_BeforePrint(Cancel As Boolean) Cancel = True MsgBox "К сожалению, вы не можете печатать этот файл", vbInformation End Sub

После завершения ввода кода нажмите Alt/Apple+Q, чтобы сохранить его и вернуться в Excel. Теперь ничего не происходит каждый раз, когда пользователи пытаются распечатать эту рабочую книгу. Строка сообщения MsgBox необязательна, но ее всегда стоит включить, хотя бы для того, чтобы пользователь не начал донимать компьютерный отдел по поводу ошибки в программе.

Код из листинга 1.5 следует использовать вместо предыдущего кода, если вы хотите, чтобы пользователи могли печатать только определенные страницы книги.

// Листинг 1.5 Private Sub workbook_BeforePrint(Cancel As Boolean) Select Case ActiveSheet.Name Case "Sheet1", "Sheet2" Cancel = True MsgBox "К сожалению, вы не можете распечатать лист из этой книги", vbInformation End Select End Sub

Читайте так же:
Как автоматически вставить строку на основе значения ячейки в Excel?

Обратите внимание, что печать будет останавливаться только на листах Sheet1 и Sheet2. Что касается имен листов рабочей книги, вы можете использовать любые имена. Добавляя их в список кода, заключите их в кавычки и разделите запятыми. Поместите только одно имя в кавычки без запятой, чтобы предотвратить печать только одного листа.

Запрещение добавлять рабочие листы

Excel позволяет защитить структуру рабочей книги, чтобы пользователи не могли ее удалять, переставлять, переименовывать и т.д. Однако иногда возникает необходимость запретить пользователям добавлять листы, разрешив при этом другие изменения в структуре рабочей книги. Код в листинге 1.6 может помочь вам в этом.

// Листинг 1.6 Private Sub Workbook_NewSheet(ByVal Sh As Object) Application.DisplayAlerts = False MsgBox "К сожалению, вы не можете добавить больше листов в эту книгу", vbInformation Sh.Delete Application.DisplayAlerts = True End Sub

После того как пользователь нажимает кнопку OK в окне сообщения, этот код немедленно удаляет лист. Строка Приложение. DisplayAlerts = False Excel отключает стандартное предупреждение, спрашивающее, действительно ли пользователь хочет удалить рабочий лист. Теперь пользователи не смогут добавлять листы в рабочие книги.

Еще один способ запретить пользователям добавлять листы — выбрать команду Сервис → Защита → Защитить книгу (Tools → Protection → Protect Workbook). Удостоверьтесь, что флажок Структуру (Structure) установлен, и щелкните на кнопке ОК. Однако, как мы уже упоминали в начале этого раздела, стандартная защита рабочих листов в Excel — это весьма грубый инструмент, который одновременно блокирует и множество других возможностей Excel.

Как автоматически скрыть определенные рабочие листы при открытии файла Excel?

Какими способами в Excel можно автоматически скрыть эти конкретные рабочие листы, когда кто-то открывает книгу?

Читайте так же:
Как быстро преобразовать файл CSV в столбцы в Excel?
стрелка синий правый пузырьАвтоматическое скрытие определенного рабочего листа при открытии книги с кодом VBA

Используйте следующий код VBA, чтобы скрыть конкретный лист при открытии книги.

1) Удерживая нажатыми клавиши ALT + F11, откройте окно Microsoft Visual Basic для приложений.

2. В левой части панели Project-VBAProject дважды щелкните значок This workbook, чтобы открыть пустой модуль, а затем скопируйте и вставьте в модуль следующий код:

Код V BA: скрытие определенного листа при открытии книги:

документ скрыть лист на открытом 1

В приведенном выше коде Sheet5 — это имя листа, который вы хотите скрыть при его открытии. Пожалуйста, измените его по своему усмотрению.

3. Затем щелкните пункт меню Файл > Сохранить как, чтобы сохранить рабочую книгу в формате Excel с поддержкой макросов, как показано на снимке экрана:

документ скрыть лист на открытом 2

При следующем открытии книги сначала нажмите на кнопку Включить содержимое, и указанный лист будет автоматически спрятан.

документ скрыть лист на открытом 3

стрелка синий правый пузырьАвтоматическое скрытие некоторых конкретных листов при открытии книги с кодом VBA

Если вам нужно скрыть несколько листов при открытии книги, вот код, который вам тоже поможет.

1. сначала перечислите имена листов, которые вы хотите скрыть, когда они открыты в списке рабочих листов, затем перейдите в поле Имя и дайте им имя диапазона -HideSheets, и нажмите кнопку Go, см. снимок экрана :

документ скрыть лист на открытом 4

2. Удерживая клавиши ALT + F11, вы сможете открыть окно Microsoft Visual Basic for Applications.

3. В левой части панели Project-VBAProject дважды щелкните значок This Workbook, чтобы открыть пустой модуль, а затем скопируйте и вставьте в модуль следующий код:

Скрывайте определенные рабочие листы при открытии книги с помощью VBA-кода:

документ скрыть лист на открытом 5

Важно отметить, что SheetsHide — это имя диапазона, который вы создали в шаге 1, Sheets.

Читайте так же:
Как автоматически отправлять электронную почту с полем cc или bcc с помощью функции mailto в Excel?

4. После сохранения и закрытия этого окна кода нажмите Файл > Сохранить как, чтобы сохранить эту рабочую книгу Excel в виде версии с поддержкой макросов. Когда вы снова откроете эту рабочую книгу, указанные рабочие листы будут автоматически скрыты.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector