2011-04-28 88 views
0

我從VB.Net自動執行Word。Word Interop:設置doc.Bookmarks(「BookmarkName」)。Range.Text導致水印和其他模板元素從文檔中消失

我通過打開一個文檔:

Dim msWord as Word.Application = CreateObject("Word.Application") 
Dim doc As Word.Document = msWord.Documents.Add(Template:=Path) 

path指向了我一個頭和水印創建的模板文件。模板有一些書籤,我要動態地設置一些相應的文本值:

doc.Bookmarks("DocumentTitle").Range.Text = "The Joy of Office Automation" 

如果我註釋掉該行,該文檔在Word中打開帶有水印等,到位。如果我讓該行執行,它會根據需要插入文本,但水印和其他內容從文檔中消失。你實際上可以看到它瞬間閃爍,然後消失。

FWIW,這是Office Word 2007,我打開.Dot(Word 97-2003)模板。我正在設置的Bookmark.Range.Text位於文檔標題中。

辦公自動化大師,我做錯了什麼?

感謝, 傑拉德

回答

0

我首先想到的是可能在某種程度上你有一個範圍的書籤「標記」相關聯的水印。如果你用其他文本替換該範圍,彈出!沒有更多的水印。

但是,這看起來像一個很大的,因爲我不認爲水印通常與範圍相關聯。

書籤是否可能跨越分節符?如果將水印設置爲特定部分並替換書籤,則會丟失該部分的所有內容(包括可能的頁眉,頁腳,邊距等)。

+0

我將不得不多做一點實驗,並且對我自己一點點了解Word文檔的結構... – Gerald 2011-05-04 11:16:21

+0

查看我的答案。它看起來好像水印以某種方式與包含首標頭位置的範圍相關聯。 – Gerald 2011-05-20 13:10:13

0

我發現了一些更多信息:如果問題書籤位於文檔標題中的第一個位置,則水印只會消失。在文檔中設置任何其他書籤不會導致水印消失。在有問題的書籤之前添加一個空格將防止水印在設置範圍文本時消失。

+0

我認爲這是一個錯誤。 – Gerald 2011-05-20 13:03:12

+0

聽起來像字我已經跑進了足夠的這些「功能」,我幾乎已經發展到期望從Word這種事情。那是一件壞事? :-) – DarinH 2011-05-20 13:42:34