各位大侠好:
          我遇到word中标签替换的问题,在word文档中我在两个地方用到同一个标签名,添加后,我c#生成word文档替换标签内容时只能将第一个标签替换过来,第二个并没有成功替换,这个问题怎么解决?

解决方案 »

  1.   

     Word.Document doc = null;// new Word.Document();
                //Document doc = new Document();
                object Obj_FileName = newfilePath;
                object Visible = false;
                object ReadOnly = false;
                object missing = System.Reflection.Missing.Value;
                Book book = new Book();
                try
                {
                    //打开文件
                    doc = app.Documents.Open(ref Obj_FileName, ref missing, ref ReadOnly, ref missing,
                        ref missing, ref missing, ref missing, ref missing,
                        ref missing, ref missing, ref missing, ref Visible,
                        ref missing, ref missing, ref missing,
                        ref missing);
                    doc.Activate();                 try
                    {
                        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 += "该名称替换失败!";
                            }
                        }
    catch{}代码就是这样子来写的了
      

  2.   

    这句是什么?
    string name = wd.Ht_HT.First(h => h.ID == Convert.ToInt64(buildID)).name.ToString(); 
    try: doc.ActiveWindow.Selection.Find.Execute(
      

  3.   

    string name = wd.Ht_HT.First(h => h.ID == Convert.ToInt64(buildID)).name.ToString(); 
    这句是linq语句,
    我是用书签替换的呀find.Execute()如何用呢?
      

  4.   

           object Find = "123";
                                object NewString = "ZZZZZZZ";
                              //  doc.ActiveWindow.Selection.
                                object Replace = Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll;                            doc.ActiveWindow.Selection.Find.Execute(ref Find, ref missing, ref missing, ref missing,
                                        ref missing, ref missing, ref missing, ref missing, ref missing, ref NewString, ref Replace, ref missing, ref missing, ref missing, ref missing);                     
      

  5.   

    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); 
    为什么我按照这个来替换根本替换不了呢?