0

我有一个简单的宏,每 30 秒保存一个 excel 文件(在 excel 2003 中)。我打开了两个运行相同宏的 excel 文件。问题是当他们将工作簿“弹出”保存在我打开的其他工作簿前面时。

这非常烦人,有谁知道如何防止这种行为..?

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
4

1 回答 1

2

将此行添加为您的子中的第一行:

Dim WBactive as Workbook
Set WBactive = Activeworkbook

End Sub添加此行之前

WBactive.Activate

您还可以添加第三行:

Application.ScreenUpdating = False

但请记住在结束您的子之前将其设置为反向:

Application.ScreenUpdating = True
于 2013-04-13T20:10:23.440 回答