Как я могу зациклить макрос? - PullRequest
       105

Как я могу зациклить макрос?

0 голосов
/ 24 октября 2018

Почему этот код VBA не работает?В этих документах использовался специальный шрифт под названием rage, wait, arial .Я хотел бы просмотреть каждую букву документа, и всякий раз, когда .Font = "*rage*", я хотел бы просматривать десятки букв.(Мой удар - терпение.)

 Sub grandma()

 Dim doc As Document
 Set doc = ActiveDocument
 Dim Counter As Integer

 For i = 1 To 6
      doc.Range.Characters.Count
      If doc.Range.Characters(i).Font.Name = "*rage*" Then
         doc.Range.Characters(i).Font.Name = "Waiting for the Sunrise"
      End If
      If doc.Range.Characters(i).Font.Name = "*wait*" Then
         doc.Range.Characters(i).Font.Name = "Rage Italic"
      End If
      If doc.Range.Characters(i).Font.Name = "*arial*" Then
         doc.Range.Characters(i).Font.Name = "Arial Nova Cond Light"
      End If
      j = i

 MsgBox "Hi! " & i
 Next i

 End Sub

enter image description here

1 Ответ

0 голосов
/ 24 октября 2018

Используйте оператор Like вместо = при использовании подстановочных знаков.

 Option Explicit

 Sub grandma()

     Dim doc As Document
     Set doc = ActiveDocument
     Dim i As Integer

     For i = 1 To 6

        With doc.Range.Characters(i).Font
            Select Case True
            Case .Name like "*rage*"
                .Name = "Waiting for the Sunrise"
            Case .Name Like "*wait*"
                .Name = "Rage Italic"
            Case .Name Like "*arial*"
                .Name = "Arial Nova Cond Light"
            End Select
        End With

        MsgBox "Hi! " & i

     Next i

 End Sub

Примечание: Я предпочитаю избегать использования типа данныхInteger и вместо этого используйте Long - если только вы не имеете дело с устаревшими приложениями, которые будут переполнены Long, или по какой-то причине я не хочу отказываться от этих двух дополнительных байтов памяти (сарказм) ,Особенно когда речь идет об отдельном текстовом документе символов , который может содержать много тысяч символов, вы можете быстро переполнить целое число.

Взгляните на Зачем использовать целое число вместоLong? для получения дополнительной информации.

...