无法更改 Word 文档中字段的结果

无法更改 Word 文档中字段的结果

我在 Access 中有一个例程,即根据现有的模板文档创建一个新的 Word 文档。将模板保存到磁盘并打开后,我想更改 Word 文档中某些字段的结果。

在我看来,这样做的方法是将结果文本赋给一个新值,这是我在所有更改结果的引用中找到的。我正在这样做,并使用更新方法,但新文档仍然有旧结果,我无法更改它。

有谁可以帮忙吗?

Dim appWord As Word.Application
Dim fieldLoop As Word.Field

  Set appWord = CreateObject("Word.application")
        For Each fieldLoop In appWord.ActiveDocument.Fields
            If InStr(1, fieldLoop.Code.Text, "Title", 1) Then
                fieldLoop.Result.Text = “newname”
            End If
            If InStr(1, fieldLoop.Code.Text, "DocCode", 1) Then
                fieldLoop.Result.Text = "newcode"
            End If
            If InStr(1, fieldLoop.Code.Text, "Category", 1) Then
                fieldLoop.Result.Text = “newcategory”
            End If
            If InStr(1, fieldLoop.Code.Text, "Author", 1) Then
                fieldLoop.Result.Text = "newauthor"
            End If
        Next fieldLoop
appWord.ActiveDocument.Fields.Update

答案1

您没有指定正在使用的字段类型,但根据您的 VBA 代码,您的最后一个命令appWord.ActiveDocument.Fields.Update会将所有字段重置为原始字段“代码和类型”通常会生成的字段。

例如,如果您的字段代码为 Info 且类型为 Author,并且您的 VBA 例程将字段 Result 从文档作者的原始名称更改为 Albert Einstein,那么当您再次更新所有字段时,Result 将恢复为原始作者的姓名。

您正在更改的字段数据似乎是文档属性,如果您想永久更改这些属性,则必须更改属性值本身。文档属性有两种类型:内置和自定义。您必须知道您正在修改的属性类型,内置还是自定义。以下是永久修改文档属性的示例代码:

With ActiveDocument
    .BuiltInDocumentProperties("Title").Value = "My Document Title"
    .BuiltInDocumentProperties("Author").Value = "My Name"
    .BuiltInDocumentProperties("Category").Value = "New Category"
    .CustomDocumentProperties("DocCode").Value = "New DocCode"
End With

相关内容