【发布时间】:2021-03-24 23:56:12
【问题描述】:
我一直在想办法解决这个问题。所以我在一个 Excel 工作簿中有代码,可以从 Word 文档中的图表打开和修改嵌入的 Sourcedata 工作簿。
我想要做的是从 word 文档中的图表中关闭所有嵌入的工作簿,但使用 Application.Workbooks 集合和“For Each workbook”循环。当我尝试使用此循环时,它会关闭所有工作簿,甚至是在运行打开嵌入式工作簿的代码之前打开的工作簿。所以我编写了只像这样关闭嵌入式工作簿的代码,但这需要太长时间:
Dim K As InlineShape
Dim chrt1 As Word.Chart
Dim xWB As Workbook
For Each K In aktDocument.InlineShapes
If K.HasChart Then
Set chrt1 = K.Chart
chrt1.ChartData.Activate
Set xWB = chrt1.ChartData.Workbook
xWB.Activate
xWB.Close
End If
Next
有没有办法使用 For each workbook 循环来关闭所有嵌入的工作簿,而不是在运行代码以及 ThisWorkbook(包含代码)之前关闭所有其他以前打开的工作簿。已打开的工作簿数量因运行代码的人而异。
【问题讨论】:
-
@Hafiz 哦,好的,谢谢。