У меня есть проект VBA в Excel, который работал с win XP и win7. Когда я пытаюсь запустить его на win8, у меня есть ошибка времени выполнения 91: Объектная переменная или С заблокированной переменной блока. вот к югу, что вызывает ошибку:Ошибка выполнения 91 с Win8
Public Sub Worksheet_UnLock()
For Each Sheet In ActiveWorkbook.Worksheets 'this line throws error
Sheet.Unprotect Password:=myPassword
Next Sheet
End Sub
Любые идеи?
EDIT: У меня нет «опции явным» над кодом. , изменяющийся с ActiveWorkbook.Worksheets to Sheets не решает проблему, но я нашел что-то интересное - мой код отлично работает, когда я сохраняю файл с кодом на локальный HD, но он дает ошибку времени выполнения 91, когда он открывается с сервера. Как это возможно? Мне действительно нужно иметь файл на сервере.
Это для Excel 2013 ?? –
попробуйте chagne 'ActiveWorkbook.Worksheets' to' ThisWorkbook.Worksheets' –
У вас есть опция «Option Explicit» в верхней части вашего модуля? Возможно, вам нужно измерить переменную «Sheet», прежде чем использовать ее в цикле. Что относительно переменной myPassword? Где это объявлено? Кроме того, попробуйте заменить «ActiveWorkbook.Worksheets» на «Листы» –