0
我做了一個mailmerge來創建客戶信息的動態詞彙頁面。如何提取/刪除每個頁面的第一個單詞?
然後我做了(通過尋找在網絡上)宏結果文件分成幾個頁面,每個頁面被保存爲一個文件。
現在我正在尋找給這些文件包含客戶信息的一些名字。我搜索了這個,我認爲(唯一的)方法是在頁面的開頭創建一個包含該信息的合併域,然後使用宏將其從頁面中提取並從文件名中刪除。
例如:如果我有一個名爲客戶#1我想有一個文件名爲Facture_Stackoverflow.doc。
我發現無處如何選擇,提取物,然後從我的頁面上刪除這個第一個字。
這裏是我的「分裂宏」,目前名稱的文件只是用遞增的ID:
Sub DecouperDocument()
Application.Browser.Target = wdBrowsePage
For i = 1 To ActiveDocument.BuiltInDocumentProperties("Number of Pages")
ActiveDocument.Bookmarks("\page").Range.Copy
Documents.Add
Selection.Paste
Selection.TypeBackspace
ChangeFileOpenDirectory "C:\test\"
DocNum = DocNum + 1
ActiveDocument.SaveAs FileName:="Facture_" & DocNum & ".doc"
ActiveDocument.Close
Application.Browser.Next
Next i
ActiveDocument.Close savechanges:=wdDoNotSaveChanges
End Sub
嗨creamyegg。非常感謝您的回答。我在我的主循環中調用了你的函數,但不幸的是得到了執行錯誤4608:值超出範圍。調試器顯示「With .Range(0,intCharCount - 1)」行,你知道我做錯了什麼嗎?這是什麼意思,如果intCharCount的值爲0 ...?這可能是因爲我的頁面的標題? – user1211458 2012-02-15 17:06:00
intCharCount應返回文檔中第一個空格字符的字符位置。我認爲intCharCount只會在文檔爲空時爲零,即沒有字母,單詞或空白。 – markblandford 2012-02-15 17:13:39
可能是。我提供的函數只適用於代碼所在的文檔(ThisDocument)。再次查看問題中的代碼,嘗試更改我的函數以使用ActiveDocument而不是ThisDocument。 – markblandford 2012-02-15 17:21:45