在使用VBA将字符串写入Word文档之前,是否可以通过编程将字符样式应用于字符串?
我从Excel表格中获取一些数据,并将其填充到Word模板中。我希望我可以将文档的一些字符样式分配给子字符串,这些子字符串将在创建字符串时添加到文档中,而不是将字符串添加到文档中,然后分别选择每个字符串以应用适当的样式 现在,我将连接几个字符串并将它们添加到文档中的文本框中,如下所示:在使用VBA将字符串写入Word文档之前,是否可以通过编程将字符样式应用于字符串?,vba,ms-word,formatting,string-formatting,Vba,Ms Word,Formatting,String Formatting,我从Excel表格中获取一些数据,并将其填充到Word模板中。我希望我可以将文档的一些字符样式分配给子字符串,这些子字符串将在创建字符串时添加到文档中,而不是将字符串添加到文档中,然后分别选择每个字符串以应用适当的样式 现在,我将连接几个字符串并将它们添加到文档中的文本框中,如下所示: ActiveDocument.Shapes(“文本框7”).TextFrame.TextRange.Text=str1&“&str2&“,”&str3 它以循环方式运行,并将其中几行打印到文档中。但是,我希望在写
ActiveDocument.Shapes(“文本框7”).TextFrame.TextRange.Text=str1&“&str2&“,”&str3
它以循环方式运行,并将其中几行打印到文档中。但是,我希望在写入文档时,为每行的str1
、str2
和str3
分配/应用不同的字符样式。比如:
ActiveDocument.Shapes("Text Box 7").TextFrame.TextRange.Text =
str1.applyStyle("charStyle1") &
" " &
str2.applyStyle("charStyle2") &
", " &
str3.applyStyle("charStyle3")
我意识到没有String.applyStyle()
方法,但是有没有什么可以做的事情接近这个功能,或者字符串必须先写入文档,然后加载到范围
对象,然后设置它的样式
属性?是的,Collapse()做到了。我不得不修改一件事,那就是。。。因为所有这些都是在循环中运行的,所以在循环的第一次迭代之后,我必须确保对所有3个字符串(而不仅仅是最后2个)使用.collapseend
。
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