Word vba 对新创建的字段应用底纹
Word vba apply shading to newly created field
我正在为文档添加字段并添加底纹。以下代码无效。
With Selection
.Range.Font.Shading.BackgroundPatternColor = wdColorLightYellow
.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False, Text:="Page"
.Fields.Update
End With
'ActiveDocument.Fields(1).Select
'Selection.Range.Font.Shading.BackgroundPatternColor = wdColorLightYellow
注释掉的行会将底纹添加到文档中的第一个字段。
在应用阴影时没有选择任何内容,范围的起点和终点是相同的。尽管在 UI 中您可以在键入前应用粗体或斜体等格式,但应用阴影会将其应用到整个段落。
要在应用阴影之前仅对需要选择的字段进行阴影处理,因为它在您问题的替代代码中。
With Selection
.Fields.add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False, text:="Page"
.Fields.Update
.MoveLeft Extend:=wdExtend
.Range.Font.Shading.BackgroundPatternColor = wdColorLightYellow
'this also works
'.Shading.BackgroundPatternColor = wdColorLightYellow
End With
由于您使用的是 VBA,所以对于使用“With”来处理您刚刚创建的字段对象,有一些值得一提的地方,例如
With Selection
With .Fields.Add( _
Range:=Selection.Range, _
Type:=wdFieldEmpty, _
PreserveFormatting:=False, _
Text:="Page")
.Update
' you either need to color .Code, .Result, or both
.Code.Font.Shading.BackgroundPatternColor = wdColorLightYellow
.Result.Font.Shading.BackgroundPatternColor = wdColorLightYellow
End With
End With
我正在为文档添加字段并添加底纹。以下代码无效。
With Selection
.Range.Font.Shading.BackgroundPatternColor = wdColorLightYellow
.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False, Text:="Page"
.Fields.Update
End With
'ActiveDocument.Fields(1).Select
'Selection.Range.Font.Shading.BackgroundPatternColor = wdColorLightYellow
注释掉的行会将底纹添加到文档中的第一个字段。
在应用阴影时没有选择任何内容,范围的起点和终点是相同的。尽管在 UI 中您可以在键入前应用粗体或斜体等格式,但应用阴影会将其应用到整个段落。
要在应用阴影之前仅对需要选择的字段进行阴影处理,因为它在您问题的替代代码中。
With Selection
.Fields.add Range:=Selection.Range, Type:=wdFieldEmpty, _
PreserveFormatting:=False, text:="Page"
.Fields.Update
.MoveLeft Extend:=wdExtend
.Range.Font.Shading.BackgroundPatternColor = wdColorLightYellow
'this also works
'.Shading.BackgroundPatternColor = wdColorLightYellow
End With
由于您使用的是 VBA,所以对于使用“With”来处理您刚刚创建的字段对象,有一些值得一提的地方,例如
With Selection
With .Fields.Add( _
Range:=Selection.Range, _
Type:=wdFieldEmpty, _
PreserveFormatting:=False, _
Text:="Page")
.Update
' you either need to color .Code, .Result, or both
.Code.Font.Shading.BackgroundPatternColor = wdColorLightYellow
.Result.Font.Shading.BackgroundPatternColor = wdColorLightYellow
End With
End With