Ошибка № 5941 Запрашиваемый номер семейства не существует - MS Word - VBA

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Пишу макрос для ворда, надо перебирать символы. При отладке вылетает "Ошибка № 5941 Запрашиваемый номер семейства не существует" на этой строке кода (когда пытаюсь извлечь символ номер i):
Листинг программы
  1. If ActiveDocument.Characters(i) = "}" Then
Весь код:
Листинг программы
  1. Sub ToCalibri()
  2. '
  3. ' ToCalibri Macros
  4. '
  5. '
  6. Set Selected = ActiveDocument.Range(0, ActiveDocument.Characters.Count)
  7. Selected.Select
  8. Dim capture As Boolean
  9. Dim captureStart As Integer
  10. Dim captureEnd As Integer
  11. captureStart = 0
  12. captureEnd = 0
  13. capture = False
  14. 'cycle to check every character
  15. For i = 1 To ActiveDocument.Characters.Count
  16. If ActiveDocument.Characters(i) = "}" Then
  17. captureStart = i
  18. capture = True
  19. ElseIf ActiveDocument.Characters(i) = "{" Then
  20. If capture Then
  21. Dim r As Range
  22. Set r = ActiveDocument.Range(captureStart + 1, captureEnd - 1)
  23. r.Select
  24. '==============================================
  25. Selection.Font.Name = "Calibri"
  26. Selection.MoveRight Unit:=wdCharacter, Count:=1
  27. '==============================================
  28. capture = False
  29. captureStart = i
  30. End If
  31. End If
  32. Next
  33. End Sub
В чем проблема?

Решение задачи: «Ошибка № 5941 Запрашиваемый номер семейства не существует - MS Word»

textual
Листинг программы
  1. Sub ToCalibri1()
  2.   Selection.HomeKey wdStory
  3.   With Selection.Find
  4.     .ClearFormatting
  5.     .Replacement.Text = ""
  6.     .Text = "[}]*[{]"
  7.     .Forward = True
  8.     .Wrap = wdFindStop
  9.     .Format = False
  10.     .MatchCase = False
  11.     .MatchWholeWord = False
  12.     .MatchAllWordForms = False
  13.     .MatchSoundsLike = False
  14.     .MatchWildcards = True
  15.   End With
  16.   While Selection.Find.Execute
  17.     ActiveDocument.Range(Selection.Start + 1, Selection.End - 1).Font.Name = "Calibri"
  18.   Wend
  19. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы