我有一个简单的宏,每隔30秒保存一个excel文件(在excel 2003中)。我有两个打开运行相同宏的excel文件。问题是当他们将工作簿“pops”保存在我打开的其他工作簿的前面时。
这非常烦人,有谁知道如何防止这种行为..?
Public Sub macro_save()
Application.EnableEvents = False
Application.DisplayAlerts = False
ThisWorkbook.Save
If Second(Now) < 30 Then
Application.OnTime VBA.TimeSerial(Hour(Now), Minute(Now), 30), "macro_save"
Else
Application.OnTime VBA.TimeSerial(Hour(Now), Minute(Now) + 1, 0), "macro_save"
End If
Application.EnableEvents = True
Application.DisplayAlerts = True
End Sub
答案 0 :(得分:2)
将此行添加为您的子行中的第一行:
Dim WBactive as Workbook
Set WBactive = Activeworkbook
并在End Sub
之前添加此行
WBactive.Activate
您还可以添加第三行:
Application.ScreenUpdating = False
但请记住在结束sub之前将其设置为反向:
Application.ScreenUpdating = True