В 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