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

Excel 在PowerPoint演示文稿上运行vba代码关闭,excel,vba,memory-leaks,powerpoint,Excel,Vba,Memory Leaks,Powerpoint,我有一个从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",

我有一个从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
一旦检索到数据,我就用

xlApp.Quit
xlApp = Nothing
不幸的是,这带来了两个问题。一个是它并不总是关闭Excel,我似乎总是在任务管理器中留下至少一个实例。另一个是,每次用户单击不同的形状时,我都想显示不同的数据,所以我现在的做法是,每次单击时,Excel都必须初始化,获取数据,然后退出。。。相当慢

那么,有没有更好的方法与Excel交互?我是否可以初始化它一次,让它保持打开状态,并在用户退出演示文稿后告诉它退出?还是有别的办法

更新: 我发现了。调用后仍保留一个松散的Excel实例

xlApp.quit

不过。不过,它会在PowerPoint关闭时关闭,所以可能这不是一个问题

set xlApp = nothing