当我只说1时,VBA关闭另一个工作簿
我在网上找到的一个代码中遇到了一个奇怪的小故障。如果我打开了两个不同的电子表格,一个里面有此代码,另一个可能根本没有宏,我在指定的时间内(就像我在宏中允许的时间一样)将其单独放置,那么包含宏的电子表格将关闭,在给定的时间后,另一个电子表格也将关闭。为什么会发生这种情况 单元1:当我只说1时,VBA关闭另一个工作簿,vba,excel,Vba,Excel,我在网上找到的一个代码中遇到了一个奇怪的小故障。如果我打开了两个不同的电子表格,一个里面有此代码,另一个可能根本没有宏,我在指定的时间内(就像我在宏中允许的时间一样)将其单独放置,那么包含宏的电子表格将关闭,在给定的时间后,另一个电子表格也将关闭。为什么会发生这种情况 单元1: Dim DownTime As Date Sub SetTimer() DownTime = Now + TimeValue("00:00:20") Application.OnTime Earlies
Dim DownTime As Date
Sub SetTimer()
DownTime = Now + TimeValue("00:00:20")
Application.OnTime EarliestTime:=DownTime, _
Procedure:="ShutDown", Schedule:=True
End Sub
Sub StopTimer()
On Error Resume Next
Application.OnTime EarliestTime:=DownTime, _
Procedure:="ShutDown", Schedule:=False
End Sub
Sub ShutDown()
Application.DisplayAlerts = False
Call ExampleToSaveWorkbook
With ThisWorkbook
.Saved = True
.Close
End With
End Sub
Sub ExampleToSaveWorkbook()
'Saving the Workbook
bnam = ActiveWorkbook.Name
filenm = "S:\Economics\GTAA\dailyPM\excelfiles\backups\" & bnam
ActiveWorkbook.SaveAs filenm
End Sub
此工作簿
Private Sub Workbook_Open()
Call SetTimer
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call StopTimer
End Sub
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
Call StopTimer
Call SetTimer
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
ByVal Target As Excel.Range)
Call StopTimer
Call SetTimer
End Sub
为什么要关闭多个包含宏的工作簿?关闭
子调用示例保存工作簿
,关闭活动工作簿。
Shutdown
的其余部分将继续关闭ThisWorkBook
对象。您正在从应用程序对象调用Shutdown,因此,如果只有一个Excel实例处于活动状态,并且打开了两个工作簿,则调用Shutdown将同时关闭两个工作簿并退出Excel。@Sorceri感谢您的帮助,但它不仅仅是两本有一个实例的工作簿。我有一个实例有4或5个工作簿,但它只关闭2个,然后停止