Vba 在Word文档中循环设置文本格式

Vba 在Word文档中循环设置文本格式,vba,for-loop,ms-office,ms-word,Vba,For Loop,Ms Office,Ms Word,我有一个巨大的文档,其中以某些特定单词开头的行应该更改文本样式。我已经为所有这些单词创建了一个数组,并尝试使用for循环格式化文档。但是,只有数组中第一个单词的样式发生了更改,而不是数组中的所有单词 下面是我所做的,请看一下并提出解决方案: Sub Variables_NormalTxt() Dim oRng As Word.Range Dim oRngFC As Word.Range Dim varUbyteNormal As Variant Dim Array

我有一个巨大的文档,其中以某些特定单词开头的行应该更改文本样式。我已经为所有这些单词创建了一个数组,并尝试使用for循环格式化文档。但是,只有数组中第一个单词的样式发生了更改,而不是数组中的所有单词

下面是我所做的,请看一下并提出解决方案:

Sub Variables_NormalTxt()
    Dim oRng As Word.Range
    Dim oRngFC As Word.Range
    Dim varUbyteNormal As Variant
    Dim ArrayItem As String
    Dim i As Integer
    varUbyteNormal = Array("uword", "ubyte", "bool", "sword", "const", "ulong", "static")
    Set oRng = ActiveDocument.Range
    i = 0
    For i = 0 To UBound(varUbyteNormal)
    With oRng.Find
        .Text = varUbyteNormal(i)
        .Font.Name = "Times New Roman"
        .Font.Bold = False
        .Font.size = 10
        While .Execute
          oRng.Select
          Set oRngFC = ActiveDocument.Bookmarks("\Line").Range
              oRngFC.Style = "variable normal"
            Wend
        End With
    Next i
End Sub
移动这条线

Set oRng = ActiveDocument.Range
进入For循环

i、 e

等等

顺便说一下

您可以删除该行

i = 0
您的For语句可以概括为

For i = LBound(varUbyteNormal) To UBound(varUbyteNormal)
也许其他人会提出其他改进建议

(…进一步研究表明,这取决于precisley (你在找什么)

移动这条线

Set oRng = ActiveDocument.Range
进入For循环

i、 e

等等

顺便说一下

您可以删除该行

i = 0
您的For语句可以概括为

For i = LBound(varUbyteNormal) To UBound(varUbyteNormal)
也许其他人会提出其他改进建议

(…进一步研究表明,这取决于precisley (你在找什么)

移动这条线

Set oRng = ActiveDocument.Range
进入For循环

i、 e

等等

顺便说一下

您可以删除该行

i = 0
您的For语句可以概括为

For i = LBound(varUbyteNormal) To UBound(varUbyteNormal)
也许其他人会提出其他改进建议

(…进一步研究表明,这取决于precisley (你在找什么)

移动这条线

Set oRng = ActiveDocument.Range
进入For循环

i、 e

等等

顺便说一下

您可以删除该行

i = 0
您的For语句可以概括为

For i = LBound(varUbyteNormal) To UBound(varUbyteNormal)
也许其他人会提出其他改进建议

(…进一步研究表明,这取决于precisley (你在找什么)


您从不使用搜索结果,只使用一些不相关的局部变量。即使是第一个单词,我也看不出样式会发生什么变化。@GSerg:在oRng.Select之后,内置书签“\Line”将指向感兴趣的区域。这很笨拙,但我现在还并没有时间对那个部分进行测试修复——也许你们有?你们从来并没有使用搜索结果,只是一些不相关的局部变量。即使是第一个单词,我也看不出样式会发生什么变化。@GSerg:在oRng.Select之后,内置书签“\Line”将指向感兴趣的区域。这很笨拙,但我现在还并没有时间对那个部分进行测试修复——也许你们有?你们从来并没有使用搜索结果,只是一些不相关的局部变量。即使是第一个单词,我也看不出样式会发生什么变化。@GSerg:在oRng.Select之后,内置书签“\Line”将指向感兴趣的区域。这很笨拙,但我现在还并没有时间对那个部分进行测试修复——也许你们有?你们从来并没有使用搜索结果,只是一些不相关的局部变量。即使是第一个单词,我也看不出样式会发生什么变化。@GSerg:在oRng.Select之后,内置书签“\Line”将指向感兴趣的区域。这是笨拙的,但我现在没有时间做一个测试修复的部分-也许你有?