Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在使用VBA将字符串写入Word文档之前,是否可以通过编程将字符样式应用于字符串?_Vba_Ms Word_Formatting_String Formatting - Fatal编程技术网

在使用VBA将字符串写入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 它以循环方式运行,并将其中几行打印到文档中。但是,我希望在写

我从Excel表格中获取一些数据,并将其填充到Word模板中。我希望我可以将文档的一些字符样式分配给子字符串,这些子字符串将在创建字符串时添加到文档中,而不是将字符串添加到文档中,然后分别选择每个字符串以应用适当的样式

现在,我将连接几个字符串并将它们添加到文档中的文本框中,如下所示:

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