Цикл до конца документа

2

Мне нужно выделить каждую третью строку документа и отформатировать текст жирным, подчеркнутым и синим цветом. У меня уже есть код для этого, но мне нужно зациклить его в течение установленного количества раз.

Проблема в том, что все циклические учебники, которые я нахожу, используют переменные или состояние для этого, пока не будет выполнено какое-то условие. Как я могу установить, чтобы это условие было «достигнуто в нижней части документа?»

Код, который я настроил, приведен ниже, и в скобках мне нужна помощь:

Selection.HomeKey Unit:=wdStory

[Do the following code until the end of the document]

        Selection.HomeKey Unit:=wdLine
        Selection.EndKey Unit:=wdLine, Extend:=wdExtend
        With Selection.Font
            .Bold = wdToggle
            .Color = 12611584
            .Underline = wdUnderlineSingle
        End With

        Selection.MoveDown Unit:=wdLine, Count:=3

[end of loop]

Очень простой вопрос. Я знаком с настройкой этих типов петель в Excel, но словом, я не могу понять это. Я ценю всех, кто находит время, чтобы ответить.

Jamiho
источник

Ответы:

2

Это должно работать

Dim lastRow As Long
lastRow = ActiveDocument.BuiltInDocumentProperties("Number Of Lines")
MsgBox lastRow

BuiltInDocumentProperties KB

Таким образом, что-то вроде этого будет работать и будет такой же тип forцикла, как Excel -

Sub CountLines()

Dim lastRow As Long
Dim i As Long
lastRow = ActiveDocument.BuiltInDocumentProperties("Number Of Lines")
For i = 1 To lastRow
    If i Mod 3 = 0 Then
        'Do Stuff
    End If
Next

End Sub

Или быть более тщательным -

Sub CountLines()

    Dim lastRow As Long
    Dim i As Long
    lastRow = ActiveDocument.BuiltInDocumentProperties("Number Of Lines")
    For i = 1 To lastRow
        If i Mod 3 = 0 Then
            ActiveDocument.Paragraphs(i).Range.Font.Bold = True
            'Do other stuff
        End If
    Next

End Sub
Raystafarian
источник