我正在尝试创建一个宏,如果它已打开一段时间,它将自动关闭并保存 Excel 工作簿。修改我在微软网站上找到的一些代码,我有:
Private Sub Workbook_Open()
StartTimer
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
StartTimer
End Sub
Const idleTime = 30
Dim Start as Long
Sub StartTimer()
Start = Timer
Do While Timer < Start + idleTime
DoEvents
Loop
Application.DisplayAlerts = False
ActiveWorkbook.Close True
Application.DisplayAlerts = True
End Sub
但是,当循环结束时(经过 30 秒后),这会引发错误。在Application.DisplayAlerts = False
它的行给我一个错误BASIC runtime error Object variable not set
如果我注释掉 Application 行,它会给我与 ActiveWorkbook 行相同的错误。然后我尝试制作一个只是调用的宏,Msgbox ActiveWorkbook.name
这给了我同样的错误。我以前从未使用过 VBA,所以我觉得这是一个非常明显的错误,但我们将不胜感激。