我尝试使用VBA Excel将表格粘贴到excel中。
我将它粘贴到我在Word中创建的4行的单列表中的单元格中。所以它本质上是一个嵌套表。
我一直在,
运行时错误4605:方法' PasteAsNestedTable'对象选择失败
我试图使用PastAsNestedTable,因为否则我得到关于单元格不匹配的运行时错误,因为它试图合并两个表。
所以我明白PasteAsNestedTable
并不是一种选择方法,但我该如何解决这个问题呢?
我的更新代码是:
Dim wdApp As Word.Application
Dim wdDoc as Word.Document
Dim tabl1 as Table, tabl2 as Table
Set wdApp = new Word.Application
With wdApp
.visible = True
.Activate
.Document.Add(location)
Set wdDoc=wdApp.ActiveDocument
With wdApp
Charts("chart1").ChartArea.Copy
.Selection.GoTo what:=-1,Name:="chart1"
.selection.Paste
(Then add some more charts)
End With
Sheets("Sheet1").Range("A1:F10").Copy
Set wdDoc=wdApp.ActiveDocument
wdDoc.Bookmarks("table").Range.PasteAsNestedTable
With wdApp
(Then repeat above pasting charts + tables)
`
如果我使范围成为ListObjects
我可以以某种方式复制它吗?
答案 0 :(得分:1)
不要使用选择。 这对我有用(Word已经打开正确的文件):
Dim wdApp As Word.Application
Dim wdDoc As Word.Document
Set wdApp = GetObject(, "Word.Application")
Sheets(1).Range("A1:F10").Copy
Set wdDoc = wdApp.ActiveDocument
wdDoc.Bookmarks("tableplace").Range.PasteAsNestedTable
您当然可以将GetObject(, "Word.Application")
替换为new Word.Application
,并将wdDoc设置为wdApp.Documents.Open(pathtoyourdoc)
。
然后结合我的其他帖子中的答案,将wd
替换为wdDoc
,你应该好好去。
修改我更改了代码以反映您当前的变量和书签名称:
Dim wdApp As Word.Application
Dim wdDoc As Word.Document
Dim tabl1 As Table, tabl2 As Table
Set wdApp = New Word.Application
With wdApp
.Visible = True
.Activate
Set wdDoc = .Documents.Open(Location)
End With
Charts("chart1").ChartArea.Copy
wdDoc.Bookmarks("chart1").Range.Paste
Sheets("Sheet1").Range("A1:F10").Copy
wdDoc.Bookmarks("table").Range.PasteAsNestedTable
'(Continue like this for other charts + tables)
注意:
.Open
。With
块Selection
。在这种情况下没有必要。