Word 无法编辑范围

Word Cannot Edit Range

我正在尝试自动编辑表单,但我 运行 遇到了书签问题。我做表格的方式是填写一个表格,保存它,重做所有字段并再次保存。这节省了打开和关闭大量不同文件的时间,意味着我不必每次都遍历书签和表单域。

然而,当使用 wordApp.Selection.TypeText() 将文本插入书签时,书签会被破坏或丢失。不管怎样,我再也抓不住它了。目前我一直在获取范围并在我将文本放入旧书签后的位置放置一个新书签。

不幸的是,当我尝试替换它时,这会留下以前的文本,因为我没有覆盖旧书签中的文本。如:

Form 0:

Name: John Smith

Form 1:

Name: Jane DoeJohn Smith

我一直在尝试 select 之前的文本并将其删除,但我被两个类似的错误阻止了,"Cannot Edit Range" 和 "Range cannot be deleted"。我正在尝试:

//Exception - CANNOT EDIT RANGE
Range range = doc.Bookmarks[fieldName].Range.Duplicate;
doc.Range(range.Start, range.End).Delete();

我也试过 range.text = "" 但我得到了相同的结果或 "Range Cannot be Deleted"。

有点乱,但我尝试了很多不同的范围变体来尝试获取文本,但它总是归结为不允许我更改我输入的文本。

我看了类似的问题:

The range cannot be deleted. at Microsoft.Office.Interop.Word.Range.set_Text(String prop)

但是到目前为止那里的答案未能解决我的问题。

使用提供给这个问题的编辑,我能够让它按照我想要的方式工作:

How can I keep bookmarks as bookmarks after editing the text value?

if (doc.Bookmarks.Exists(fieldName))
{
    doc.FormFields[fieldName].Result = text;
}