Определить функцию как объект создать объект в функции и вернуть объект из функции - PullRequest
0 голосов
/ 09 мая 2019

В Excel VBA определите функцию как объект, создайте объект в функции и верните объект из функции. У меня есть код для установки объекта в каталогах в функции, и я хочу вернуть этот объект через функцию.

У меня есть код для установки объекта в каталогах функции, и я хочу вернуть этот объект через функцию. Прикрепленный код получает следующую ошибку. Переменная объекта или переменная блока не установлена. Это происходит, когда после выполнения «End Function» Подпрограмма работает, если функции заменены на подпрограмму, а объект передается ByRef и возвращается.

Sub Main()
    Dim oDirectories     As Object
    Dim sDirectory      As String
    sDirectory = "C:\Users"
    oDirectories = ListDirectories(sDirectory)
end sub

Private Function ListDirectories(ByVal sPath As String) As Object

    Dim oFSO        As Object
    Dim a           As String

' Function does not work without the following line
    ChDir sPath
' Verify that system can find the directory
    a = CurDir()

    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFiles = oFSO.GetFolder(sPath).SubFolders

   Set ListDirectories = oFiles

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