我有下面的代码,它将源文档Tables.docx
中的所有表复制到文档末尾的目标文档。所有下面的代码都没有任何错误。
在目标文件Temp.doc,
中,我有一个或两个行的表格标题,然后一行空白和一个文字行从单词开始参考附录,详细说明如下。
Temp.doc
Page 1表1. ........(表格标题)摘要
(一行空白)
参考附录1(一行文字)
剩余页面空白,其中第1页的表1来自要粘贴或插入的源文档。
表1续........(表格标题)摘要
(一行空白)
参考附录1(一行文字)
剩余页面空白,其中第2页的表2来自要粘贴或插入的源文档。
表2. ........(表格标题)摘要
(一行空白)
参考附录2(一行文字)
剩余页面空白,其中第3页的表3来自要粘贴或插入的源文档。
如何从第1页上的目标文档第3行下面的源文档中复制第一页表。同样从源文档的第2页复制表并粘贴到目标文档的第2页第3行下面等等。
我对宏观知之甚少。因此,我试图在代码下编辑的内容不包括在内以减少对专家的混淆。
Sub ExtractTables()
Dim objTable As Table
Dim SourceDoc As Document
Dim TargetDoc As Document
Dim objRange As Range
Set SourceDoc = WrdApp.Documents.Open(ActiveDocument.Path & "\Tables.docx")
Set TargetDoc = WrdApp.Documents.Open(ActiveDocument.Path & "\Temp.doc")
For Each objTable In SourceDoc.Tables
objTable.Range.Select
Selection.Copy
Set objRange = TargetDoc.Range
objRange.Collapse Direction:=wdCollapseEnd
objRange.PasteSpecial DataType:=wdPasteRTF
objRange.Collapse Direction:=wdCollapseEnd
objRange.Text = vbCr
Next objTable
End Sub
你的描述充其量是模糊不清的。我不知道你的意思
在目标文件Temp.doc中,我有一个或两个行的表格标题,然后一行空白和一个文字行从单词开始参考附录
也就是说,如果要在Temp.doc中插入书签以指示这些复制表的去向,可以使用以下代码:
Sub CopyTables()
Dim DocSrc As Document, DocTgt As Document, T As Long
Set DocSrc = WrdApp.Documents.Open(ActiveDocument.Path & "\Tables.docx")
Set DocTgt = WrdApp.Documents.Open(ActiveDocument.Path & "\Temp.doc")
With DocSrc
For T = 1 To .Tables.Count
If DocTgt.Bookmarks.Exists("Tbl" & T) Then
DocTgt.Bookmarks("Tbl" & T).Range.FormattedText = .Tables(T).Range.FormattedText
End If
Next
End With
End Sub
上面的代码假设Temp.doc中的书签被命名为Tbl1,Tbl2等。
为什么你有这样的代码也不明显:
Dim WrdApp As Word.Application
Dim bWeStartedWord As Boolean
…
On Error Resume Next
Set WrdApp = GetObject(, "Word.Application")
On Error GoTo 0
If WrdApp Is Nothing Then
Set WrdApp = CreateObject("Word.Application")
bWeStartedWord = True
End If
WrdApp.Visible = True
因为没有任何迹象表明涉及Word以外的任何应用程序。