簡體   English   中英

逐頁將每個 Word 表格從源文檔復制到目標文檔循環

[英]Copy each Word tables from source document to target document loop page by page

我有以下代碼,它將所有表格從源文檔Tables.docx復制到文檔末尾的目標文檔。 以下所有代碼都可以正常工作,沒有任何錯誤。

在目標文檔Temp.doc,我有一行或兩行的表格標題,然后是一行空白和一行從 word refer appendix 開始的文本行,為了更清楚起見,詳見下文。

臨時文檔


第 1 頁 表 1. 摘要.........(表標題)

(一行空白)

參考附錄一(一行文字)

剩余頁面空白,其中要粘貼或插入源文檔第 1 頁的表 1。


第 2 頁表 1(續) 摘要.........(表格標題)

(一行空白)

參考附錄一(一行文字)

剩余頁面空白,其中要粘貼或插入源文檔第 2 頁的表 2。


第 3 頁 表 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 中,我有一行或兩行的表格標題,然后一行空白和一行從 word refer appendix 開始的文本行

也就是說,如果您要在 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 以外的任何應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM