word文档中两个地方用到了同一个书签名,我用C#替换时,为什么只能替换第一个书签

解决方案 »

  1.   

    不知道你是怎么样“替换”书签的
    Book.Text将保留书签
    Range.Text将删除书签
    直接Find替换的话,每执行一次替换一个 
      

  2.   

     object BookMarkName = "name"; 
                        object what = Word.WdGoToItem.wdGoToBook; 
                        if (app.ActiveDocument.Books.Exists("name") == true) 
                        { 
                            //WordApp.ActiveDocument.Books.get_Item(ref BookMarkName).Select(); 
                            try 
                            { 
                                doc.ActiveWindow.Selection.GoTo(ref what, ref missing, ref missing, ref BookMarkName); 
                                string name = wd.Ht_HT.First(h => h.ID == Convert.ToInt64(buildID)).name.ToString(); 
                                doc.ActiveWindow.Selection.TypeText(name.ToString()); 
                            } 
                            catch 
                            { 
                                catchstring += "该名称替换失败!"; 
                            } 
    我是这样替换的
      

  3.   

     doc.ActiveWindow.Selection.Find.Execute(ref BookMarkName, ref missing, ref missing, ref missing,
    ref missing, ref missing, ref missing, ref missing, ref missing, ref BookValue, ref Replace, ref missing, ref missing, ref missing, ref missing); 
    我用这种方法替换根本就替换不了。ref BookMarkName是word中书签的名称