Цикл файлов в папке с макросом Excel - PullRequest
0 голосов
/ 13 февраля 2019

Я пытался написать макрос Excel, который перебирает файлы в папке и возвращает имена файлов.Я гуглил и тестировал, но не могу заставить его работать.Это код:

Sub LoopThroughFiles()

   Dim MyObj As Object, MySource As Object, file As Variant
   Set MySource = MyObj.GetFolder("c:\test\")
   For Each file In MySource.Files
      MsgBox file
   Next file

End Sub

Я получаю эту ошибку:

Ошибка времени выполнения '91':

Переменная объекта или переменная блокане задано.

Файл Excel имеет имя test.xlsm.В папке 3 файла: test01.txt, test02.txt, test03.txt.Я использую Windows 7, 64 бит.

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Используйте функцию Dir ?

Sub LoopThroughFiles()
    Dim FileName AS String

    FileName = Dir("c:\test\*") 'Any file in the folder

    While Len(FileName) > 0
        MsgBox FileName 'Say the file's name
        FileName = Dir() 'Get next item that matches the filter
    Wend
End Sub
0 голосов
/ 13 февраля 2019

Вам потребуется Set MyObj, например,

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

, в противном случае MyObj - пустая переменная и возвращает Nothing.

...