Vba 循环中的书写和样式

Vba 循环中的书写和样式,vba,ms-word,Vba,Ms Word,假设我有以下代码将标题从数组写入word文档并应用已定义的样式: With wdDoc Set wrdRange = .Range(0, 0) ' Set initial Range. i = 2 Do Until i > 6 ' Debug.Print wrdRange.Start, wrdRange.End wrdRange.text = totalArray(i, colIndex(3))

假设我有以下代码将标题从数组写入word文档并应用已定义的样式:

With wdDoc
    Set wrdRange = .Range(0, 0)                     ' Set initial Range.
    i = 2
    Do Until i > 6
       ' Debug.Print wrdRange.Start, wrdRange.End
        wrdRange.text = totalArray(i, colIndex(3)) & Chr(11)
        Set wrdRange = .Paragraphs(i - 1).Range
        wrdRange.Style = totalArray(i, colIndex(2))
        wrdRange.Collapse 0
        i = i + 1
    Loop
End With
人们预计会发生以下情况:

  • 当我在文档中移动时,单词范围以编程方式移动
  • 将更新新范围的单词样式(由set语句定义)
  • 范围收缩到末端(0=wdCollapseEnd),循环继续,直到满足初始条件 我似乎无法修复的是应用于文档中所有现有段落的样式。Print语句应显示按预期更新的范围,尽管样式适用于所有现有段落

    正如你所知道的,我已经玩弄了很多,但都没有用。在这件事上,任何帮助都将不胜感激


    谢谢。

    在下面的代码行中:

     wrdRange.text = totalArray(i, colIndex(3)) & Chr(11)
    

    使用Chr(13)代替Chr(11)。后者只是一个换行符,而不是一个新段落。因此,将样式应用于范围的任何部分实际上就是将其应用于代码生成的所有文本,因为它是一个段落。

    很高兴我遗漏了这一点!谢谢你,辛迪!