在这个问题2262686中,给出了使用VB在Excel文档中插入Excel图表的解决方案。我喜欢这种方法,因为它不使用Copy-Paste;解决方案是:
...如果图表在它自己的工作表中,而不是Sheet1中的对象, 然后AddOLEObject代码使用以下设置正常工作:
文件名:= “!abc.xlsx Chart1”
然而,在VBA(至少在单词中)这个解决方案不起作用,似乎一旦'!'就会崩溃被添加到FileName。
有谁知道如何在MS Word中使用这种方法?
[编辑:在下方添加代码]
Sub insertChart(wbName As String)
Dim sFileName As String
sFileName = ThisDocument.Path & Application.PathSeparator & wbName
ActiveDocument.InlineShapes.AddOLEObject _
fileName:=sFileName, LinkToFile:=False, _
Range:=Selection.Range
End Sub
Sub myTest()
' Excel Workbook with Chart in it. Chart is added to document IF:
' - it is in its own sheet
' - it is first sheet in workbook
insertChart "myWorkBook.xlsx"
' What fails is attempt to address a specific (or multiple)
' chart in the WorkBook by using the "myWorkBook.xlsx!Chart1"
' apparently this works in VB but not VBA...
End Sub