MS Word VBA - 将文本插入具有不同样式的标题中

时间:2015-11-22 20:10:11

标签: vba ms-word

使用VBA我能够在Word文档标题中插入文本:

Set HeaderRange = ActiveDocument.Sections.Item(1).Headers(wdHeaderFooterPrimary).Range

HeaderRange.Text = "header text'

但我希望能够在标题中添加多行文字,每个文字都应用了它自己的风格。

我发现这样做的一种方法如下:

Set HeaderRange = ActiveDocument.Sections.Item(1).Headers(wdHeaderFooterPrimary).Range

HeaderRange.Text = "Line One Text" & vbNewLine & "Line Two Text"  & vbNewLine & "Line Three Text"

' set the ranges based on sentences
Set NameRange = HeaderRange.Sentences(1)
Set TitleRange = HeaderRange.Sentences(2)
Set AddressRange = HeaderRange.Sentences(3)

' set the styles for each part
NameRange.Style = "title"
TitleRange.Style = "strong"
AddressRange.Style = "emphasis"

这基本上有效,但如果在其中一行文本中有任何句点(。),则会导致问题。

有没有更好的方法可以将文本分隔成多个部分的标题并为每个部分应用不同的样式?

1 个答案:

答案 0 :(得分:0)

Range.Sentences集合对句点的位置敏感,这标志着句子的结尾。 Range.Paragraphs集合不是,而是vbNewLine的位置,这显然是你想要的。

Set NameRange = HeaderRange.Paragraphs(1).Range
Set TitleRange = HeaderRange.Paragraphs(2).Range
Set AddressRange = HeaderRange.Paragraphs(3).Range