在用 VBA 写入 Word 文档之前,能否以编程方式将字符样式应用于字符串?
Can a character style be applied programmatically to a string before it is written to the Word document with VBA?
我正在从 Excel sheet 中抓取一些数据并将其填充到 Word 模板中。我希望我可以将文档的一些字符样式分配给子字符串,这些子字符串将在构建字符串时添加到文档中,而不是先将字符串添加到文档中,然后 select 每个字符串分别添加到应用适当的样式。
现在,我正在连接一些字符串并将它们添加到文档中的文本框中,如下所示:
ActiveDocument.Shapes("Text Box 7").TextFrame.TextRange.Text = str1 & " " & str2 & ", " & str3
这在循环中运行并将其中几行打印到文档中。但是,我希望在将其写入文档时在每一行上使用 assign/apply 与 str1
、str2
和 str3
不同的字符样式。类似于:
ActiveDocument.Shapes("Text Box 7").TextFrame.TextRange.Text =
str1.applyStyle("charStyle1") &
" " &
str2.applyStyle("charStyle2") &
", " &
str3.applyStyle("charStyle3")
我知道没有 String.applyStyle()
方法,但是有没有什么可以接近这个功能,或者字符串必须先写入文档然后加载到 Range
对象,然后设置其 Style
属性?
With ActiveDocument.Shapes("Text Box 7").TextFrame.TextRange
.Style = "Style1"
.Text = str1 & " "
.Collapse wdCollapseEnd
.Style = "Style2"
.Text = str2 & ", "
.Collapse wdCollapseEnd
.Style = "Style3"
.Text = str3
End With
我正在从 Excel sheet 中抓取一些数据并将其填充到 Word 模板中。我希望我可以将文档的一些字符样式分配给子字符串,这些子字符串将在构建字符串时添加到文档中,而不是先将字符串添加到文档中,然后 select 每个字符串分别添加到应用适当的样式。
现在,我正在连接一些字符串并将它们添加到文档中的文本框中,如下所示:
ActiveDocument.Shapes("Text Box 7").TextFrame.TextRange.Text = str1 & " " & str2 & ", " & str3
这在循环中运行并将其中几行打印到文档中。但是,我希望在将其写入文档时在每一行上使用 assign/apply 与 str1
、str2
和 str3
不同的字符样式。类似于:
ActiveDocument.Shapes("Text Box 7").TextFrame.TextRange.Text =
str1.applyStyle("charStyle1") &
" " &
str2.applyStyle("charStyle2") &
", " &
str3.applyStyle("charStyle3")
我知道没有 String.applyStyle()
方法,但是有没有什么可以接近这个功能,或者字符串必须先写入文档然后加载到 Range
对象,然后设置其 Style
属性?
With ActiveDocument.Shapes("Text Box 7").TextFrame.TextRange
.Style = "Style1"
.Text = str1 & " "
.Collapse wdCollapseEnd
.Style = "Style2"
.Text = str2 & ", "
.Collapse wdCollapseEnd
.Style = "Style3"
.Text = str3
End With