在MS Word中更新特定类型的字段

时间:2012-08-15 17:15:40

标签: vba ms-word word-vba

我发现这个引用会更新word文档中的所有字段。 http://www.gmayor.com/installing_macro.htm

Sub UpdateAll()
    Dim oStory As Range
    For Each oStory In ActiveDocument.StoryRanges
        oStory.Fields.Update
        If oStory.StoryType <> wdMainTextStory Then
            While Not (oStory.NextStoryRange Is Nothing)
                Set oStory = oStory.NextStoryRange
                oStory.Fields.Update
            Wend
        End If
    Next oStory
    Set oStory = Nothing
End Sub

我想将其修改为只使用此宏的DocProperty类型更新字段。

例如:我想更新所有DocProperty类型,同时跳过所有Ref类型或所有其他类型。

1 个答案:

答案 0 :(得分:0)

您可以在更新前检查字段Type属性,但是您必须循环遍历它们。

有很多方法可以做到这一点,但我把循环放在一个sub中,所以你可以从

更改你的两个更新行
oStory.Fields.Update

Call UpdateRangeFieldsOfType(oStory, wdFieldDocProperty)

这是子:

Sub UpdateRangeFieldsOfType(poRange As Range, peType As WdFieldType)
    Dim oField As Field

    For Each oField In poRange.Fields
        If oField.Type = peType Then
            oField.Update
        End If
    Next
    Set oField = Nothing
End Sub