我將基於搜索條件添加書籤的Word文檔處理自動化。代碼很好用,但在文檔中有表格時失敗。看起來像在正常的文檔中,當我讀取文本時,它以行爲單位給出,但在表格中,文本具有列和行。所以,當我搜索一個文本,並且文本是在一行中寫成兩行的時候,結果是可以的,但是當我選擇文本時,WORD API會從兩列中選擇文本,而不是同一列中的文本,而是兩行。現在如何在表格內創建書籤
col1 col2 This is Second Column Some Text
如果我搜索文本「這是一些文本」我得到了它正確,但是當我選擇它,我得到了「這是第二列」
reg = New Regex(result.token(j).ToString())
Dim m As Match = reg.Match(_doc.Range.Text, 0)
pos = m.Index ' start position is fine
'' start is the starting position of the token in the content...
''length is the size of the token
len = result.token(j).ToString().Length ' text length is fine
rng = _doc.Range(pos, len + pos) ' this copies the text from the second col
_doc.Bookmarks.Add(bookmarkName, rng)
對不起,我不明白你的問題:'現在,如果我搜索的文本「這是一些文本」我得到了它正確'w好的,所以怎麼了?這是'和'一些文字'在兩個不同的行嗎? – JMax
對不起,我感到困惑。實際上,爲了添加書籤,我首先使用正則表達式搜索文本,它告訴我該字符串存在以及文本的起始位置。然後,我選擇文本爲_doc.Range(pos,lenofString + pos)這應該選擇實際的文本嗎?所以在我的例子中,如果我正在尋找的文本是「這是一些文本」,那麼這段代碼應該選擇它,但是會發生的是它選擇「這是第二列」,這意味着它不知道文本是否被寫入在一個單元格內,它只是將其作爲行讀取。這對你有意義嗎? – Kashif