我有一个从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
然后,一旦我检索到数据,我就用
关闭ExcelxlApp.Quit
xlApp = Nothing
不幸的是,这会产生两个问题。一个是它并不总是关闭Excel,我似乎总是在任务管理器中留下至少一个实例。另一个是我希望每次用户点击不同的形状时显示不同的数据,所以我现在这样做的方式,每次点击发生时,Excel必须初始化,获取数据并退出。 ..很慢。
那么有更好的方法与Excel接口吗?我可以初始化一次,保持打开状态,并在用户退出演示文稿后告诉它退出吗?或者还有另一种方式吗?
更新 我发现there is a way to trigger events on close。调用
后仍然留下松散的Excel实例xlApp.quit
和
set xlApp = nothing
虽然。但是,当PowerPoint出现时它会关闭,所以也许这不是一个问题。