在PowerPoint演示文稿上运行vba代码关闭

时间:2015-10-02 08:41:46

标签: excel vba memory-leaks powerpoint powerpoint-vba

我有一个从Excel电子表格中提取数据的演示文稿。我正在使用它创建一个新的Excel实例:

 Public Sub InitExcel()
    If xlApp Is Nothing Then Set xlApp = New Excel.Application
    xlApp.DisplayAlerts = False
    Set wbWorkbook = xlApp.Workbooks.Open(ActivePresentation.Path & "\Data.xlsx", ReadOnly:="True", Notify:="false")
    xlApp.DisplayAlerts = True
    Set wsTechnologies = wbWorkbook.Worksheets("Technologies")
End Sub

然后,一旦我检索到数据,我就用

关闭Excel
xlApp.Quit
xlApp = Nothing

不幸的是,这会产生两个问题。一个是它并不总是关闭Excel,我似乎总是在任务管理器中留下至少一个实例。另一个是我希望每次用户点击不同的形状时显示不同的数据,所以我现在这样做的方式,每次点击发生时,Excel必须初始化,获取数据并退出。 ..很慢。

那么有更好的方法与Excel接口吗?我可以初始化一次,保持打开状态,并在用户退出演示文稿后告诉它退出吗?或者还有另一种方式吗?

更新 我发现there is a way to trigger events on close。调用

后仍然留下松散的Excel实例
xlApp.quit

set xlApp = nothing

虽然。但是,当PowerPoint出现时它会关闭,所以也许这不是一个问题。

0 个答案:

没有答案