У меня есть эта действительно странная ошибка в Excel VBA, которая продолжает появляться. Я использовал коды ниже
Public psword, oldpsword As Integer
Public Sub Auto_Open()
psword = Sheets("Main Menu").Cells(55, 1)
oldpsword = psword
For Each ws In Worksheets
ws.Protect Password:=psword
Next ws
End Sub
Всякий раз, когда код переходит к строке «oldpsword = psword», появляется сообщение об ошибке, показывающее ошибку несоответствия типа «13:» во время выполнения. Как я могу это исправить?
Public psword, oldpsword As Integer
толькоoldpsword
соответствуетInteger
, аpsword
соответствуетVariant
. ВосстановитьPublic psword As integer, oldpsword As Integer
- person Dmitry Pavliv   schedule 02.05.2014Dim
. Однако я подозреваю, что проблема в том, чтоCells(55,1)
не содержит целого числа. Вариант может содержать что угодно, поэтомуpsWord = ...
подходит, ноoldpsword = psword
не работает, потому что значение вpsword
не может быть преобразовано в целое число. - person Tony Dallimore   schedule 04.05.2014