0

Word用のInteropライブラリを使用していますが、COM例外が発生します。

メッセージ: "Type Mismatch" ErrorCode:-2146824070 Source: "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.Range(ref docStart, ref docEnd);
rng.FormattedText = subDoc.Range(ref start, ref end);

(FormattedTextプロパティを設定しようとすると、エラーがスローされます。)

デバッグ時のローカルは次のとおりです。

docStart: 0
docEnd: 1
start: 0
end: 10

私の問題がここにあるのかわかりません。何か案は?ありがとう!

4

2 に答える 2

1

最後の行を 2 つの部分に分割してデバッグします。

  1. 呼び出しsubdoc.Range(結果を一時変数に入れる)
  2. に設定しrng.FormattedTextます。

#1が実際に期待どおりに動作していることを確認してください。私の推測では、endを超えているため、そうではありませんdocumentEnd

于 2012-01-30T18:00:05.077 に答える
0

最後の行は

rng.FormattedText = subDoc.Range(ref start, ref end).FormattedText; 

.FormattedTextつまり、行末に追加する必要があります。

FormattedText を range オブジェクトに設定することはできません。formattedText オブジェクトにのみ設定できます。

どちらも System.__ComObject 型であるという事実は、どちらも RCW でラップされていることを意味します。ラッパー内のオブジェクトはさまざまなタイプです。

于 2012-01-30T23:54:12.480 に答える