我在工作中的一个同事修改了我们的一个宏工作簿,现在只有我在尝试运行它时会收到可怕的“运行时错误32809”。这个最新版本在他的电脑和我们测试过的另一位同事的电脑上都能正常运行。之前的版本在我们所有的电脑上都能正常运行,它们都运行着Excel 2010。
当宏尝试选择名为“Info”的工作表索引1时,就会出现这个错误。我知道选择/激活不是必需的,但现在我正在使用这个工作簿,而且正试图找出为什么只有我会收到这个错误。
我已经尝试了:
- 重新启动/电源循环
- 保存副本
- 使用CCleaner清理临时文件
- 在线研究
- 检查ActiveX控件(使用表单控件)
所有这些尝试都没有成功。然后我在即时窗口里进行了一些操作,发现甚至一个简单的:
Debug.Print ThisWorkbook.Worksheets(1).Name
程序运行时出现错误,使我相信工作表已经崩溃了。我在工作表中添加了一些事件,包括_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
是否有人遇到过类似的情况或知道什么原因导致此错误仅在某些计算机上发生?