如何关闭PowerPoint中VBA操作后残留的嵌入Excel进程?
问题描述
我用VBA处理PowerPoint图表关联的Excel数据,执行隐藏/删除行列等操作。最初使用chart.ChartData.Activate命令打开Excel,但之前尝试用Workbook.Close()关闭工作簿时遇到问题,因此保留Excel进程不关闭。如今处理大型演示文稿时,这导致PowerPoint崩溃并进入恢复模式。即使重新启用Workbook.Close()命令,有时这些Excel实例仍会残留,或在程序中失去作用域。
我按幻灯片逐一处理演示文稿,希望找到一种在处理完每张幻灯片后批量关闭这些打开实例的方法。有人知道如何访问这些残留的Excel进程吗?我已附上图片说明它们的位置。
我改用ChartData.ActivateChartDataWindow命令而非ChartData.Activate,因为最初使用Activate命令会打开完整的Excel应用而非ChartData窗口,极大降低处理速度,反复操作时还会崩溃。我还附上了PowerPoint中代码遗留的ChartDataWindows的图片。
示例代码
Private Sub ClearColumnsInExcel() 'Set the slide Dim slide As slide Set slide = pptPres.Slides(1) 'Index through each shape on the slide Dim shapeX As Integer For shapeX = 1 To slide.Shapes.Count 'If this shape has a chart If slide.Shapes(shapeX).Type = msoChart Then 'Set the chart Dim chart As chart Set chart = slide.Shapes(shapeX).chart 'Set the worksheet Dim wks As Worksheet Set wks = chart.ChartData.Workbook.Worksheets(1) 'Activate the workbook chart.ChartData.ActivateChartDataWindow 'Clear target columns 'Remove objects from memory Set wks = Nothing Set chart = Nothing End If Next shapeX End Sub
内容的提问来源于stack exchange,提问作者World Kicker
相关产品推荐
相关产品推荐

