我有点问题。 我最近开始尝试使用宏。自从我每次打开任何excel文件时都开始这样做,后台打开了第二个文件。 我的XLSTART文件夹为空。将此第二个文件保存到XLSTART文件夹后,我不再需要保存新文件。 所以我的想法是编写一个宏,在启动时自动关闭该文件。 这里唯一的问题是我首先必须加载我想要打开的每个工作簿。 因此,如果我首先启动一个文件,那么首先打开空文件,然后在此文件之后打开我最初要打开的文件。 如果我在加载另一个文件之前关闭空文件,它将打开一个新的第三个文件。所以最后我打开一个文件,自动打开+关闭空白文件,但在加载正确的文件后,它会创建一个新文件。 所以现在我的问题是:如何延迟我的开放宏以便加载另一个文件。 到目前为止我得到了这个:
Private Sub Workbook_Activate()
Application.OnTime Now + TimeValue("00:00:15"), Windows("a.xlsm").Close
End Sub
但关闭事件并未延迟。有什么想法吗?
答案 0 :(得分:1)
Application.OnTime
接受一个字符串参数来标识等待后要运行的过程。您需要将设置更改为以下内容:
Private Sub Workbook_Activate()
Application.OnTime Now + TimeValue("00:00:15"), "CloseWorkbook"
End Sub
Public Sub CloseWorkbook() 'put this sub in a standard module
Windows("a.xlsm").Close
End Sub
或者,使用Application.Wait
Private Sub Workbook_Activate()
Application.Wait Now + TimeValue("00:00:15")
Windows("a.xlsm").Close
End Sub