【问题标题】:Microsoft Access 2016: Quitting Excel.ApplicationMicrosoft Access 2016:退出 Excel.Application
【发布时间】:2017-11-30 19:28:40
【问题描述】:

我正在尝试将数据从我的 Access 数据库导出到 Excel 工作簿。一切正常,除了导出完成后我无法让 Excel 正确关闭。当我在执行代码后打开任务管理器时,Microsoft Excel 的一个实例总是列在后台进程下。我阅读了各种 cmet,表明问题可能在于,在创建初始 Excel.Application 对象和尝试关闭它之间的某个地方,正在秘密创建另一个 Excel.Application。因此,我将代码缩减到它所做的只是创建和关闭 Excel.Application 对象的程度。结果还是一样。

这是我的代码:

Sub testexcel()

    Dim xl As Excel.Application

    Set xl = Excel.Application

    xl.Quit

    Set xl = Nothing

End Sub

对于我必须更改哪些内容以使 Excel 正确关闭的任何建议,我将不胜感激。谢谢!

【问题讨论】:

标签: ms-access vba


【解决方案1】:

这段代码最终对我有用:

Sub testexcel()

   Dim xl as Excel.Application

   Set xl = New Excel.Application

   'Code

   xl.Quit

   Set xl = Nothing

End Sub

显然,“新”关键字起到了重要作用。

【讨论】:

    【解决方案2】:

    您声明您正在“尝试从我的 Access 数据库中导出数据”-但您没有说明如何--并且有不止一种方法可以做到这一点。

    在 Access 功能区的外部选项卡中具有导出功能。如果在屏幕上打开数据集(表或查询),然后使用此功能手动导出 - Excel 应用程序根本不应该打开。您是否通过这种方法检查过理智?

    【讨论】:

      【解决方案3】:

      请改用CreateObject("Excel.Application")

      Sub testexcel()
      
          Dim xl As Excel.Application
      
          Set xl = CreateObject("Excel.Application")
      
          Stop    ' so you can see in Task Manager / Process Explorer that EXCEL.EXE is there
      
          xl.Quit
          Set xl = Nothing
          ' and it's gone
      
      End Sub
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多