我有无尽的Word文档,所有文档都在其中的相同DocProperty中。 现在我必须修改这个特定DocProperty的字体样式(例如将其设为粗体),必须跳过任何其他DocProperty。
如何使用VBA选择此DocProperty?
我查看了ActiveDocument.Range.Fields
集合,但链接的DocProperty的名称在哪里?我只找到了Text,但这是实际的CustomDocProperty的值
答案 0 :(得分:1)
你走在正确的轨道上。总之,你想要: -
Field.Type
的值为85(WdFieldDocProperty)Field.Code
是否有属性名称/标签下面是一个检查文档的示例,其中包含用于解释所发生情况的注释: -
Public Sub Sample()
Dim WdDoc As Word.Document
Dim Fld As Word.Field
'Connect to the Document
Set WdDoc = ThisDocument
'Only work if there are fields in the document to begin with
If WdDoc.Fields.Count > 0 Then
'Check each field
For Each Fld In WdDoc.Fields
'If the type is a DocProperty then we may have a match
If Fld.Type = wdFieldDocProperty Then
'If the code contains the name we are after then we have a match!
If InStr(1, Fld.Code, "Custom1") Then
'Select the field
Fld.Select
'Format the selection
Selection.Font.Bold = True
End If
End If
Next
End If
Set WdDoc = Nothing
End Sub
作为进一步的提示(如果你还没有完成所有准备),将使用FileScriptingObject来帮助使用循环一次性处理所有文档。如果你这样做并且卡住了,那就开始一个新的问题,你有多远,什么不行,SO会帮助我确定。