У Билла есть набор из нескольких книг, которые он часто использует как набор.

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

Поскольку Excel защищает паролем каждую книгу на уровне файлов, всякий раз, когда Билл щелкает гиперссылку, ему необходимо ввести пароль для книги, к которой он пытается получить доступ. Он задается вопросом, есть ли способ просто ввести пароль один раз (это один и тот же пароль для всех книг в его пакете) и получить доступ ко всем книгам без необходимости многократно вводить пароль.

Короткий ответ: это невозможно, поскольку Excel обрабатывает каждый файл отдельно. Переключитесь на отдельный файл по вашей гиперссылке, и Excel снова запросит пароль. Есть только два возможных способа избежать раздражения. Первый — объединить все отдельные книги в одну книгу. Это не может быть оптимальным решением по ряду причин. (Например, вам может потребоваться раздать отдельные книги другим пользователям. Если вы объедините все книги в одну, вы удалите эту возможность.)

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

У вас должен получиться список спецификаций файлов для ваших книг.

Теперь щелкните правой кнопкой мыши вкладку листа этого нового листа. Excel отображает контекстное меню, в котором вы должны выбрать Просмотреть код. Откроется редактор VBA с панелью кода для рабочего листа. Введите следующий макрос в панель кода:

Private Sub Worksheet_BeforeDoubleClick _   (ByVal Target As Excel.Range, Cancel As Boolean)

Dim sPW As String     Dim sFile As String

sPW = "password" 'Change to your password     sFile = Target.Value     If sFile <> "" Then         If Dir(sFile) <> "" Then             Workbooks.Open _               FileName:=sFile, _               password:=sPW             Cancel = True         End If     End If End Sub

Единственное, что вам нужно изменить в коде, — это пароль, который вы хотите использовать для книг, к которым вы получаете доступ. (Код предполагает, что для всех рабочих книг используется один и тот же пароль.)

Нажмите Alt + Q, чтобы выйти из редактора VBA, и вы вернетесь к своему рабочему листу. Сохраните книгу, а затем дважды щелкните любую из ячеек, содержащих путь и имена файлов. Затем Excel передает управление макросу, который получает путь и имя файла, а затем открывает эту книгу.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (2886) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и более поздних версий) здесь:

link: / excelribbon-Using_a_Single_Password_for_Multiple_Workbooks [Использование одного пароля для нескольких книг].