繁体   English   中英

使用 C# 中的字时存在显式转换

[英]An Explicit conversion exists when working with word in C#

此代码获取活动检查器 window 即撰写邮件 window 并执行搜索并替换 ZC1C425268E68385D1AB5074C17A94EBF14Z 为 Z07483F5ABC2736 的正文。

但我收到一个错误:

无法将类型“对象”隐式转换为“Microsoft.Office.Interop.Word.Range”。 存在显式转换(您是否缺少演员表?)

代码在这里供您参考..

 private void button1_Click(object sender, RibbonControlEventArgs e)
    {
          Outlook.Inspector uiInspector = Globals.ThisAddIn.Application.ActiveInspector();
          object uiObject = uiInspector.CurrentItem;
          if (uiObject is Outlook.MailItem && uiInspector.IsWordMail())
          {
              Outlook.MailItem uiItem = (Outlook.MailItem)uiObject;
              Word.Document uiDoc = uiInspector.WordEditor as Word.Document;
              if (uiDoc != null)
              {
                  ***Word.Find uiFind = uiDoc.Range().Find;***
                  uiFind.Text = "ASA^$^$^#^#^#^#^#";
                  while (uiFind.Execute())
                  {
                      Microsoft.Office.Interop.Word.Range rng = uiFind.Parent;
                      rng.Hyperlinks.Add(rng, "http://stack.com=" + rng.Text + "outlook2007");
                      rng.Collapse(Word.WdCollapseDirection.wdCollapseEnd);
                  }
              }
          }
  }

我该如何纠正这个错误?

您需要转换此行:

Microsoft.Office.Interop.Word.Range rng = uiFind.Parent;

var rng = uiFind.Parent as Microsoft.Office.Interop.Word.Range;

尝试

Microsoft.Office.Interop.Word.Range rng = (Microsoft.Office.Interop.Word.Range)uiFind.Parent;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM