几年来,我们已经让这几行代码在我们的应用程序中愉快地运行(以及在 Office 的多个版本中,2003、2007、2010 等)。目的是在 Word 文档中执行一种邮件合并,用数据库中的名称、地址等替换字段占位符:
Dim w As Word.Application
Dim d As Microsoft.Office.Interop.Word.Document = Nothing
...
Dim f As Microsoft.Office.Interop.Word.Field
For Each f In d.Fields
f.Select()
If fieldName = w.Selection.Text Then
f.Result.Text = value
End If
Next
但是,运行 Office 2013 的用户在线报告此错误f.Result.Text = value
:
System.Runtime.InteropServices.COMException (0x800A17EC):您不能编辑此选择,因为它受到保护。
因此,这仅在用户运行 Office 2013 并且针对此错误的在线帮助很少时才会发生。
文档的任何部分都不受保护,用户可以直接在 Word 中编辑文档而不会出现任何问题。