我在Excel中有一个VBA项目,它正在使用win XP和win7。当我尝试在win8上运行它时,我遇到运行时错误91:对象变量或未设置块变量。 这是导致错误的子:
Public Sub Worksheet_UnLock()
For Each Sheet In ActiveWorkbook.Worksheets 'this line throws error
Sheet.Unprotect Password:=myPassword
Next Sheet
End Sub
有什么想法吗?
编辑: 我在代码之上没有“明确选项”。 从ActiveWorkbook.Worksheets更改为Sheets并没有解决问题,但我发现了一些有趣的东西 - 当我将带有代码的文件保存到本地HD时,我的代码工作正常,但是当它从服务器打开时它会产生运行时错误91。怎么可能? 我真的需要在服务器上安装文件。
答案 0 :(得分:0)
出现错误91是因为未设置对象,因此我确保ActiveWorkbook确实已添加了工作表。您可能想尝试一下,看看它是否仍然会抛出错误。
Sub Worksheet_UnLock()
Dim s as Worksheet
For Each s In ActiveWorkbook.Sheets
s.Unprotect Password:=myPassword
Next
End Sub