VBA: ошибка выполнения 4198 при использовании метода DetectLanguage - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть текстовый документ, который содержит только следующее предложение:

"Esta es una oración en Español, para un documentmento en Español."

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

Следующий код основан на коде, найденном на странице Microsoft для метода DetectLanguage

Sub DetLang()
If Application.Documents.Count >= 1 Then
    MsgBox ActiveDocument.Name
Else
    MsgBox "No documents are open"
End If
With ActiveDocument
 If .LanguageDetected = True Then
 x = MsgBox("This document has already " _
 & "been checked. Do you want to check " _
 & "it again?", vbYesNo)
 If x = vbYes Then
 .LanguageDetected = False
 .DetectLanguage
 End If
 Else
 ActiveDocument.DetectLanguage
 End If
 If .Range.LanguageID = wdEnglishUS Then
 MsgBox "This is a U.S. English document."
 Else
 MsgBox "This is not a U.S. English document."
 End If
End With
End Sub

Когда он попадает в строку, где вызывается .DetectLanguage, макрос вылетает и выдает ошибку 4198.

Можете ли вы сказать мне, в чем причина проблемы?

Спасибо.

1 Ответ

1 голос
/ 22 апреля 2020

Метод DetectLanguage работает только в том случае, если вы добавили несколько языков редактирования (независимо от того, все они установлены или включены) - и тестирует только эти языки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...