C# 发生COMException:错误代码=-2146824070
我正在使用Word的互操作库,我遇到一个COM异常: 消息:“类型不匹配” 错误代码:-2146824070 资料来源:“Microsoft Word” 引发错误的方法是:C# 发生COMException:错误代码=-2146824070,c#,ms-word,ms-office,office-interop,error-code,C#,Ms Word,Ms Office,Office Interop,Error Code,我正在使用Word的互操作库,我遇到一个COM异常: 消息:“类型不匹配” 错误代码:-2146824070 资料来源:“Microsoft Word” 引发错误的方法是: object docStart = doc.Content.End - 1; object docEnd = doc.Content.End; object start = subDoc.Content.Start; object end = subDoc.Content.End; Word.Range rng = doc
object docStart = doc.Content.End - 1;
object docEnd = doc.Content.End;
object start = subDoc.Content.Start;
object end = subDoc.Content.End;
Word.Range rng = doc.Range(ref docStart, ref docEnd);
rng.FormattedText = subDoc.Range(ref start, ref end);
(尝试设置FormattedText属性时引发错误。)
调试时的局部变量是:
docStart: 0
docEnd: 1
start: 0
end: 10
我不确定我的问题是什么。有什么想法吗?谢谢 我会将最后一行分成两部分进行调试
rng.FormattedText
检查#1是否真的在做你期望的事情。我猜不会是因为
end
超出了documentEnd
最后一行需要
rng.FormattedText = subDoc.Range(ref start, ref end).FormattedText;
也就是说,您需要在行尾添加.FormattedText
不能将FormattedText设置为范围对象,只能将其设置为FormattedText对象
事实上,它们都是System.\uuuComObject类型,这意味着它们都被包装在一个RCW中。包装器中的对象类型不同。需要是
rng.FormattedText=subDoc.Range(ref start,ref end)。FormattedText代码>无法将格式化文本设置为范围对象…是否来自同一Word实例的doc
和subDoc
?您不能将格式化文本从Word的一个实例分配给另一个实例,它们必须位于同一实例中(即相同的应用程序
)。我正在使用相同的应用程序打开它们。我发布的方法位于为每个文档调用的类中。执行此检查后,我看不到tempRng和rng.FormattedText类型之间的任何差异。它们都是{System.{ComObject}类型,我也不能让它工作。。。仍然给我一个类型不匹配