Excel Vba Workbook_open перестает работать

У меня есть файл excel с макросом VBA, который запускается, когда Рабочая тетрадь открывается пользователем. Один из пользователей добавил в этот файл пароль для входа в систему защиты, и теперь Workbook_open () больше не реагирует.

Это excel-2003.

Любые идеи?


person ItayM    schedule 06.10.2011    source источник
comment
Какой код в событии открытия книги?   -  person Reafidy    schedule 06.10.2011


Ответы (2)


Просмотр полного кода в соответствии с комментарием Reafidy поможет

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

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

Вы можете объединить код заставки Брэда с существующим Open кодом.

person brettdj    schedule 06.10.2011

Есть несколько вариантов, перечисленных на этом веб-сайте

Попробуйте использовать дополнительный параметр пароля следующим образом:

Sub OpenBookTest()
Dim myFile As String
Dim myPath As String
myPath = "C:\My Documents"
myFile = "My Workbook.xls"
Workbooks.Open myPath & "\" & myFile, password:="password"
End Sub

Или написано по-другому:

Workbooks.Open "Full Path Name", Password: ="XYZ"

После просмотра MSDN я предполагаю, что ваша Workbook_Open - это настраиваемая подпрограмма, которую вы написали (или скопировали откуда-то в Интернете). В этом случае вам нужно будет отредактировать его, чтобы разрешить дополнительный параметр пароля. Вам следует отредактировать свой вопрос и опубликовать процедуру Workbook_Open. Так мы узнаем, как вам помочь.

person amccormack    schedule 06.10.2011
comment
Событие workbook_open - это встроенное событие excel vba, которое запускается при открытии книги. - person Reafidy; 07.10.2011