使用 Range.PasteAndFormat c# 时粘贴项的顺序

Order of the paste item while using Range.PasteAndFormat c#

我正在尝试使用以下代码使用 Word 自动化将文本粘贴到循环中。

Clipboard.SetData(System.Windows.DataFormats.Rtf, text);
if (!Clipboard.ContainsText())
    Thread.Sleep(500);

initialRange.PasteAndFormat(WdRecoveryType.wdFormatOriginalFormatting);
initialRange.Collapse(WdCollapseDirection.wdCollapseEnd);

我有一个字符串集合,我试图写:

This is line 1
This is line 2
This is line 3

我希望输出以相同的顺序打印,但是在使用上面的代码时我得到的输出顺序相反,即

This is line 3
This is line 2
This is line 1

知道我需要做什么才能修复输出的顺序吗?

终于,我找到了解决办法。我不得不添加

PasteAndFormat 调用之前的

"initialRange.MoveEnd();" 行。

因此,最终代码看起来像

Clipboard.SetData(System.Windows.DataFormats.Rtf, text);
if (!Clipboard.ContainsData(DataFormats.Rtf))
    Thread.Sleep(500);

initialRange.MoveEnd();
initialRange.PasteAndFormat(WdRecoveryType.wdFormatOriginalFormatting);
initialRange.Collapse(WdCollapseDirection.wdCollapseEnd);