Как исправить эту ошибку при запуске макроса? - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь запустить макрос, у которого никогда не было проблем. Сегодня, когда я пытаюсь запустить макрос, он запрашивает «Лицензионная информация для этого компонента не найдена». У вас нет соответствующей лицензии на использование этой функции в среде разработки »(Ошибка 429). И когда я запускаю сам код. Там написано «Компонент Activex не может создать объект». Код начинается как показано ниже

Option Explicit

Sub CreateForEachLine()
Dim myPathTo As String
    myPathTo = "C:\Users\9418\Desktop\Work Files\Vending\April 1"
    Dim myFileSystemObject As Object
' The Activex component error debug highlights below line
    Set myFileSystemObject = CreateObject("Scripting.FileSystemObject") 
Dim fileOut As Object
    Dim myFileName As String

    Dim lastRow As Long
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    Dim i As Long

        For i = 1 To lastRow
            If Not IsEmpty(Cells(i, 1)) Then
                myFileName = Cells(i, 1) & ".txt"
                Set fileOut = myFileSystemObject.OpenTextFile(myFileName, 8, True)
                fileOut.write Cells(i, 2) & vbTab & Cells(i, 3) & vbTab & Cells(i, 4) & vbTab & Cells(i, 5) & vbNewLine
                fileOut.Close
            End If
        Next

    Set myFileSystemObject = Nothing
    Set fileOut = Nothing
End Sub

У меня есть другой файл с поддержкой макросов с другим кодом, и он отлично работает. Связано ли это с лицензированием продукта Microsoft, как я вижу, когда захожу в меню «Файл»> «Справка», в нем говорится, что требуется активация продукта. Это создает проблему?

1 Ответ

0 голосов
/ 01 апреля 2019

Единственный объект, который вы создаете, находится в этой строке

 Set myFileSystemObject = CreateObject("Scripting.FileSystemObject") 

, а FileSystemObject хранится в scrrun.dll в c: \ windows \ system32

Вряд ли естьлицензия прилагается к нему, но это начало нового финансового года, поэтому возможно, что были приложены некоторые данные об истечении срока действия.Однако я подозреваю, что каким-то образом ваш код пытается запустить другой Scripting.FileSystemObject.Почему бы не попробовать раннее связывание?В редакторе vb перейдите к ссылкам на инструменты и отметьте «Microsoft Scripting Runtime».Затем замените строки

 Dim myFileSystemObject As Object
Set myFileSystemObject = CreateObject("Scripting.FileSystemObject") 

на

 Dim myFileSystemObject as New FileSystemObject

и посмотрите, по-прежнему ли появляется ошибка

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