2014-09-02 59 views
1

在MS在MS Word中刪除書籤Word2010中我有一個書籤名稱書籤:nameOfBookmark刪除書籤的內容,而無需使用C#

現在收藏內容可能是從剛剛文本什麼的圖片,表格和任何一個組合你可以考慮放入一個單詞文件。

問題如下: 我收藏了一些我想要刪除的內容的書籤。但是,每次嘗試刪除內容時,它都會刪除我想保留的書籤。

我已經試過這一點,它只是刪除了整個事情:

public void cleanBookmark(string bookmark) 
    { 
     var start = currentDocument.Bookmarks[nameOfBookmark].Start; 
     var end = currentDocument.Bookmarks[nameOfBookmark].End; 
     Word.Range range = currentDocument.Range(start, end); 
     range.Delete(); 
    } 

我也試着範圍設置爲這樣:

Word.Range range = currentDocument.Range(start +1, end -1); 

但後來我結束了一個仍然包含我想要刪除的內容的第一個和最後一個字符的書籤。

回答

5

那麼我想知道爲什麼我必須不斷回答自己的問題,如果您認爲這可能是我提問的方式,請通知我。

無論如何,我發現一個解決方案後,多一點研究,似乎我想要的東西根本無法完成,或至少不是我認爲它可以完成的方式。

如果刪除書籤的內容,它也會刪除書籤。所以你需要做的是將書籤的名稱和範圍存儲在局部變量中,然後在刪除書籤後重新添加書籤。

public void cleanBookmark(string bookmark) 
    { 
     var start = currentDocument.Bookmarks[bookmark].Start; 
     var end = currentDocument.Bookmarks[bookmark].End; 
     Word.Range range = currentDocument.Range(start, end); 
     range.Delete(); 
     //The Delete() only deletes text so if you got tables in the doc it leaves the tables empty. 
     //The following removes the tables in the current range. 
     if (range.Tables.Count != 0) 
     { 
      for (int i = 1; i <= range.Tables.Count; i++) 
      { 
       range.Tables[i].Delete(); 
      } 
     } 
     currentDocument.Bookmarks.Add(bookmark, range); 
    } 

如果您想了解有關此主題的更多信息,請參見this問題。

0

我發現如果您將文本轉換爲表格並將單個I光束書籤插入所需的單元格中,即使刪除了內容,表格也會保護書籤。然後,一旦您完成了表單的所有vba,如果將表單轉換爲dotm,則用戶不應該因意外刪除書籤而出現任何問題,並且您必須對錶單進行故障排除以修復其錯誤。

0

你可以試試這個:

ActiveDocument.Bookmarks("name").Range.Characters.First.Delete 

附:
仍試圖解決多個書籤。