我有下面的代码,该代码将所有表从源文档Tables.docx
复制到目标文档的末尾。以下所有代码均可正常运行。
在目标文档Temp.doc,
中,我有一行或两行的表标题,然后一行空白和一行以单词开头的文本行请参见附录,如下所述,以更加清楚。
Temp.doc
第1页 表1. .......的摘要(表标题)
(一行空白)
请参阅附录1(一行文字)
剩余页为空白,其中粘贴或插入了源文档中第1页的表1。
第2页 表1续........(表格标题)的摘要
(一行空白)
请参阅附录1(一行文字)
其余页面为空白,其中粘贴或插入了源文档中第2页的表2。
第3页 表2. .......的摘要(表标题)
(一行空白)
请参阅附录2(一行文本)
剩余页为空白,其中粘贴或插入了源文档第3页的表3。
如何从源文档复制首页表以粘贴到页面1的目标文档第3行下方。类似地,从源文档的第2页复制表并粘贴到目标文档的第2页第3行下方,依此类推。 / p>
我对宏不是很了解。因此,我尝试编辑以下代码的内容并未包括在内,以减少对专家的困惑。
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
答案 0 :(得分:3)
您的描述充其量是晦涩的。我不知道你可能是什么意思
在目标文档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之外,没有任何其他应用程序可以表示。