一位同事对我们的一个宏工作簿进行了一些更改,现在只有在我的 PC 上,当我尝试运行它时,我收到了可怕的运行时错误“32809”。这个最新版本在他的 PC 和我们测试过的另一位同事的 PC 上运行良好。以前的版本在我们所有的 PC 上运行良好,所有这些 PC 都运行 Excel 2010。
当宏尝试选择名为“信息”的工作表索引 1 时,将引发错误。我知道 Select/Activate 不是必需的,但我现在只是使用此工作簿,并试图找出为什么我一个人会收到此错误。
我努力了:
- 重启/重启
- 保存工作簿的副本
- 使用 CCleaner 清理临时文件
- 在线研究
- 检查 ActiveX 控件(使用表单控件)
一切都没有成功。然后我在即时窗口中遇到了一些混乱,发现即使是简单的:
Debug.Print ThisWorkbook.Worksheets(1).Name
会抛出运行时错误,这让我相信 Worksheet 不知何故坏了。我在工作表中添加了几个事件,包括 _Activate 和 _Change,但即使在确认后也不会触发:
Application.EnableEvents = True
我添加了一个简单的测试子如下:
Public Sub Test()
Dim ws As Worksheet
Dim sheetNum As Integer
For Each ws In ThisWorkbook.Worksheets
ws.Select ' Selects all Sheets Without Error
Debug.Print ws.Name ' Prints All Worksheet Names Fine
Next ws
Set ws = ThisWorkbook.Worksheets(1)
ws.Select ' Selects Sheet 1 Without Error
' Prints all but sheetNum = 1, Run-time Error 32809
For sheetNum = 7 To 1 Step -1
Debug.Print ThisWorkbook.Worksheets(sheetNum).Name
Next sheetNum
' Run-time Error 32809
ThisWorkbook.Worksheets(1).Select
End Sub
有没有人遇到过类似的情况或知道是什么原因导致此错误仅在某些 PC 上发生?