2014-03-04 37 views
0

我需要克隆Word.Range對象Word 2007加載項:克隆Word.Range

我正在嘗試使用以下代碼在每個匹配給定字符串的單詞上創建一個超鏈接。但是Hyperlinks.Add()方法似乎修改Range值(rng),所以while循環運行時間一直持續(然而,當我評論Hyperkinks.Add()行時,循環運行良好)。

rng.Find.ClearFormatting(); 
rng.Find.Forward = true; 
rng.Find.Text = value; 

rng.Find.Execute(); 
while (rng.Find.Found) 
{ 
    rng.Document.Hyperlinks.Add(rng, rng.Document.Name, CorrespondingBookmark(rng.Text)); 
    rng.Find.Execute(); 
} 
+0

不同於論壇的網站,我們不使用的「謝謝」,或者「任何幫助表示讚賞」,或簽名(因此)。請參閱「[應該'嗨','謝謝',標語和致敬從帖子中刪除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be -removed-from-posts)。 –

+0

你在問題中指出了問題行,但沒有提供完整的代碼給'Hyperlinks.Add',最後這些點是什麼?可能有問題...你有正確的語法?([這裏是Word-VBA](http://msdn.microsoft.com/en-us/library/ff837214%28v=office.14%29.aspx)) –

+0

這些小點就在那裏,使它更容易理解爲它只是從rng.Text中找到超鏈接應該重定向到哪個書籤上的一個特徵(例如,如果rng.Text是000-01,相應的書籤將是000_01)。但是這不是問題的範圍在這個特徵中沒有被修改。 – Nicolas

回答

0

通過修改循環解決了我的問題:您不應該使用Forward選項,因爲它似乎是bug。

rng.Find.ClearFormatting(); 
rng.Find.Forward = false; 
rng.Find.Text = value; 

while (rng.Find.Execute()) 
{ 
    rng.Document.Hyperlinks.Add(rng, rng.Document.Name, CorrespondingBookmark(rng.Text)); 
    rng.Find.Execute(); 
} 

我不知道爲什麼它的工作...