运行时错误91与Win8

时间:2014-01-22 08:27:18

标签: excel vba ms-office

我在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。怎么可能? 我真的需要在服务器上安装文件。

1 个答案:

答案 0 :(得分:0)

出现错误91是因为未设置对象,因此我确保ActiveWorkbook确实已添加了工作表。您可能想尝试一下,看看它是否仍然会抛出错误。

Sub Worksheet_UnLock()
    Dim s as Worksheet

    For Each s In ActiveWorkbook.Sheets
        s.Unprotect Password:=myPassword
    Next
End Sub