Возвращенный объект не может быть повторен в Excel VBA - PullRequest
0 голосов
/ 24 января 2019

Я хотел бы повторить объект в Excel VBA.Но он показывает ошибку «Ошибка времени выполнения 438. Объект не поддерживает это свойство или метод».

Sub FunctionTest()
    
    Dim src, dist, production As Workbook
    Dim files As Object
    
    Set dist = ThisWorkbook
    
    Set files = getFiles(dist.path)
    
    For Each file In files
    
        Debug.Print file.Name
    
    Next
    
End Sub

Function getFiles(path As String) As Object
    
    Dim fsObject, folderObj, FileObj As Object
    
    Set fsObject = CreateObject("Scripting.FileSystemObject")
    Set folderObj = fsObject.GetFolder(path)
    Set filesObj = folderObj.files
    
    Set getFiles = fsObject
    
End Function

Но это хорошо работает, если не возвращен объект, подобный этому.

Function getFiles(path As String) As Object
    
    Dim fsObject, folderObj, FileObj As Object
    
    Set fsObject = CreateObject("Scripting.FileSystemObject")
    Set folderObj = fsObject.GetFolder(path)
    Set filesObj = folderObj.files
    
    For Each file In filesObj
    
        Debug.Print file.Name
    
    Next
    
    Set getFiles = fsObject
    
End Function

1 Ответ

0 голосов
/ 24 января 2019

Ваш код возвращает неправильный объект.Должно быть:

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