【问题标题】:Excel opens 2nd blank workbookExcel 打开第二个空白工作簿
【发布时间】:2018-02-22 15:16:39
【问题描述】:

我有一个小问题。 我最近开始尝试使用宏。由于我每次打开任何 excel 文件时都开始这样做,因此在后台打开了第二个文件。 我的 XLSTART 文件夹是空的。将第二个文件保存到 XLSTART 文件夹后,我不必再保存新文件了。 所以我的想法是编写一个宏,在启动时自动关闭这个文件。 这里唯一的问题是我首先必须加载我想要打开的每个工作簿。 因此,如果我首先启动一个文件,首先将打开空文件,然后再打开我最初想要打开的文件。 如果我在加载另一个文件之前关闭空文件,它将打开一个新的第三个文件。所以最后我打开一个文件,自动打开+关闭空白文件,但在加载正确的文件后,它会创建一个新文件。 所以我现在的问题是:如何延迟我的打开宏以便加载其他文件。 到目前为止,我得到了这个:

Private Sub Workbook_Activate()
Application.OnTime Now + TimeValue("00:00:15"), Windows("a.xlsm").Close
End Sub

但是关闭事件并没有延迟。有什么想法吗?

【问题讨论】:

    标签: vba excel


    【解决方案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
    

    【讨论】:

    • 您好,抱歉,上周我有很多工作要做。我尝试了两个版本。使用第一个表示 CloseWorkbook 方法不可用。
    • 你把它放在标准模块里了吗?
    • 使用第二个版本的excel开始会有延迟。延迟后,它会打开我想要的工作簿+一个全新的工作簿(不是带有宏的工作簿)
    • 是的,这是我的问题,抱歉。非常感谢。所以第一个代码对我来说很好。 :)
    猜你喜欢
    • 2019-01-30
    • 2019-12-04
    • 2014-09-12
    • 1970-01-01
    • 2020-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    相关资源
    最近更新 更多