VBA выдает ошибки, когда я пытаюсь переместить строки в тело документа и ссылаться на них.
Пример того, что я пытаюсь сделать. Рассмотрим следующий макрос:
Public Function Foo() As Variant
Set Bar = CreateObject("WScript.Shell")
Bar.Run ("C:\Windows\system32\notepad.exe")
End Function
Я пытаюсь переместить строки, такие как «WScript.Shell» и «C: \ Windows \ system32 \ notepad.exe», в текст документа Word, например в текстовое поле.
Public Function Foo()
Dim WScript As String
WScript = ActiveDocument.Shapes("Text Box 1").TextFrame.TextRange.Text
Set Bar = CreateObject(WScript)
Dim Notepad As String
Notepad = ActiveDocument.Shapes("Text Box 2").TextFrame.TextRange.Text
Bar.Run (Notepad)
End Function
Текстовое поле 1 и Текстовое поле 2 содержат в точности те же строки, что и раньше, и я могу прочитать их с помощью MsgBox (), но теперь макрос завершается ошибкой вызова CreateObject в строке 4 с ошибкой: «Ошибка времени выполнения» 429 ': Компонент ActiveX не может создать объект "
Если я заменяю строку в макросе, чтобы позволить коду пройти через эту точку, и создаю объект ActiveX WScript, я получаю сообщение об ошибке при вызове метода Bar.Run: «Ошибка времени выполнения« 424 »: требуется объект ».
Это заставляет меня думать, что выборка строк во время выполнения невозможна. Кто-нибудь может объяснить, почему это происходит?