- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好的,我正在从 MS Access 创建一个 Word 文档(基于模板),并使用 OLEFormat 对象更新多个图表。一旦我激活了该对象(该对象创建了一个新的 Excel 实例)并进行了编辑,我就会使用以下命令关闭该 Excel 实例:
wdChart.ChartData.Workbook.Application.Quit
如果没有其他 Excel 实例在运行,则此方法可以正常工作。但是,如果 OLEFormat.Activate 发生时有一个打开的 Excel 实例,则它不会创建新的 Excel 实例,而是在打开的同一 Excel 实例中打开图表电子表格。因此,当我执行 .Application.Quit 命令时,它会关闭该实例中所有打开的工作簿并提示我保存工作簿。此时,我收到一条 Word 消息,内容如下:
To insert a chart, you must first close any open dialog boxes or cancel editing mode in Microsoft Excel
我的代码失败并显示:
Method 'Activate' of object 'ChartData' failed
我认为这些错误与我的代码按顺序编辑多个图表有关。当 Word 对话框弹出时,我的代码仍在尝试运行或发生其他情况。
我认为如果有一种方法可以强制 OLEFormat.Activate 打开它自己的 Excel 实例,就可以解决所有这些问题。这可能吗?
最佳答案
您需要检查是否有超过 1 个打开的工作簿。如果是,则关闭图表工作簿,否则,退出应用程序。
If wdChart.ChartData.Workbook.Application.Workbooks.Count > 1 Then
wdChart.ChartData.Workbook.Close saveChanges:=False
Else
wdChart.ChartData.Workbook.Application.Quit
End If
关于ms-access - 如何仅关闭由 OLEFormat.Activate 打开的 Excel 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16403746/
我是一名优秀的程序员,十分优秀!