2014-05-12 91 views
-1

我有在Excel電子表格中包含了數據庫計算機生成的文檔。我已經寫了一些VBA來提取一些列的和我自己的手類型的描述一起把它摺疊,產生一個新的工作表。格式自動創建的Word文檔

結果是唯一的「半成品」可讀因爲Excel不能讀取正確的格式。我想這個轉換到Word,也許每桌一個頁面(有總共約25桌)。我的想法是讓一個文件誰的最後一頁只是格式化,這需要每個以下頁面我會複製。

我見過的「查找和替換」型解決方案的一些說明,一個使用書籤似乎是一個有趣的解決方案,但沒有基於現有頁面上的這些地址進行新的頁面(或其他)的。有沒有人做過類似的事情?

更新:我已經略有進展基於一些代碼在別處找到了:

 wApp.Selection.Goto What:=wdGoToAbsolute, Name:="3"    ' this is the template page 
     wDoc.Bookmarks("\Page").Range.Copy   ' copy it 
     wApp.Selection.Goto What:=wdGoToPage, Which:=wdGoToLast  ' move to the end of the document 
     wApp.Selection.Paste 

不幸的是,作爲編輯我可能,它總是複製和粘貼第一頁,而不是第3頁。

+0

http://stackoverflow.com/q/2006077可能讓你開始。 –

+0

這工作正常1:1置換 - 在一個頁面,一個頁面了。但我有1:n的替代品。 –

回答

0

我忘了我發佈了這個。我終於找到了一個工作方案,雖然我不滿意困難Word如何使這一點。基本上你只能幾乎通過附加建立一個文檔,所以我的代碼是在輸入電子表格中的大循環,循環的膽量看起來是這樣的:

wDoc.Characters.Last.Select 
wApp.Selection.InsertBreak Type:=7 'wdPageBreak 
wDoc.Characters.Last.Select 
wApp.Selection.InsertAfter Tn 
wApp.Selection.Style = wDoc.Styles("Heading 2") 
wDoc.Characters.Last.Select 
wApp.Selection.InsertAfter " (Table: " & WT.Cells(R, 2) & ")" 
wApp.Selection.Style = wDoc.Styles("Heading 4") 
wDoc.Characters.Last.Select 
wApp.Selection.InsertAfter vbCrLf 
wDoc.Characters.Last.Select 
wApp.Selection.InsertAfter (WT.Cells(R, 3)) 
wApp.Selection.Style = wDoc.Styles("No Spacing") 
wDoc.Characters.Last.Select 
wApp.Selection.InsertAfter vbCrLf 
wApp.Selection.InsertAfter vbCrLf 

您可以看到基本的邏輯,你必須保持在端部插入的部分,從所述片材和InsertAfter拉動位。由於Word的數字開始和結束的方式,樣式是一種痛苦。無論如何,這是行不通的。