2014-06-05 51 views
0

現在我有以下文本的Word文檔:在Word中改寫書籤使用VB.NET

全名 位置 地址

的每行作爲一個單獨的書籤。每行的書籤名稱與單詞相同(FullName的書籤爲FullName)。

當我遍歷書籤並更新三個不同書籤的文本時,前兩個書籤被刪除,我只剩下這個地址。我想一些書籤如何在編輯過程中以某種方式組合起來。

這裏是我的代碼:

Dim saveFileDialog1 As New SaveFileDialog() 
saveFileDialog1.Filter = "Word|*.docx" 
saveFileDialog1.Title = "Save your report file" 

Dim FilePath = "C:\Users\Administrator.Laptop1\Desktop\TESTER.docx" 
Dim myWordDoc As Microsoft.Office.Interop.Word.Document 
Dim myWordApp As Microsoft.Office.Interop.Word.Application 
Dim filepathname As Object = TryCast(FilePath, Object) 
Dim missing As Object = Type.Missing 
Dim objTrue As Object = TryCast(True, Object) 

' create Word.Application object for the document 
myWordApp = New Microsoft.Office.Interop.Word.Application 

' open the document 
myWordDoc = myWordApp.Documents.Open(filepathname, missing, missing, missing, missing,  missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing) 

'update Opinion 
myWordDoc.Bookmarks("SendDate").Range.Text =  (Convert.ToDateTime(TextBox7.Text)).ToString("MMMM dd, yyyy") 
myWordDoc.Bookmarks("FullName").Range.Text = TextBox4.Text & " " & TextBox5.Text & " " & TextBox6.Text & vbLf 
myWordDoc.Bookmarks("Position").Range.Text = TextBox8.Text & vbLf 
+1

這在ms-word中是很常見的問題。 [試試這個](http://word.mvps.org/faqs/macrosvba/InsertingTextAtBookmark.htm)或者在Google中進行更好的搜索。 –

回答

0

而不是使用互操作的服務和書籤做到這一點的,你應該考慮使用DocumentFormat.OpenXml.Wordprocessing和簡單的替代品。

它更穩定,表現更好,不掛字。

您可以簡單地遍歷文檔正文後代中諸如「{FirstName}」之類的文件並進行替換,而不是使用可能永遠困擾您的書籤。