2016-12-23 6 views
2

У меня есть вопрос, связанный с переходом через папку из двух разных типов файлов: xlsm и mdb (Access).Цитирование через различные типы файлов в папке (VBA)

В настоящее время я написал макрос, который откроет 1 единственный файл xlsm и 1 единственный файл mdb перед копированием некоторых данных из файла xlsm в mdb, а затем сохранит файл mdb.

Теперь я хотел бы, чтобы этот процесс повторялся через папку с 50 файлами xlsm и 50 mdb-файлами. Они имеют одинаковые имена, поэтому, например, цикл должен сделать это:

  1. Откройте оба файла xlsm и mdb под названием «2001».
  2. Выполнение копирования и вставки и т. Д. От xlsm до mdb (я написал эту часть).
  3. Сохраните файл mdb.
  4. Закройте оба файла xlsm и mdb под названием «2001».
  5. Повторите шаги 1-4 для «2002», «2003» и т. Д. В папке.

Я действительно новичок в VBA, так что помощь очень ценится! С нетерпением ждем любых указаний. Счастливого Рождества!

+2

Трудно предложить, как изменить код, если мы его не видим. [Пожалуйста, отредактируйте соответствующую часть в своем вопросе] (http://stackoverflow.com/posts/41305586/edit). – Comintern

+0

Для начала: http://stackoverflow.com/documentation/vba/990/scripting-filesystemobject/9507/enumerate-files-in-a-directory-using-filesystemobject#t=201612231748152928855 – Andre

ответ

2

Я только что сделал сегодня пример кода для перечисления файлов JPG в папке, вы можете принять и изменить, чтобы делать именно то, что вам нравится, но было бы очень сложно дать вам точный код, не имея возможности увидеть ваше решение.

Public Sub listImages(folderPath As String) 

    'define variables 
    Dim fso As Object 
    Dim objFolder As Object 
    Dim objFolders As Object 
    Dim objF As Object 
    Dim objFile As Object 
    Dim objFiles As Object 
    Dim strFileName As String 
    Dim strFilePath As String 
    Dim myList As String 

    'set file system object 
    Set fso = CreateObject("Scripting.FileSystemObject") 

    'set folder object 
    Set objFolder = fso.GetFolder(folderPath) 

    'set files 
    Set objFiles = objFolder.files 
    Set objFolders = objFolder.subfolders 

    'list all images in folder 
    For Each objFile In objFiles 

     If Right(objFile.Name, 4) = ".jpg" Then 
      strFileName = objFile.Name 
      strFilePath = objFile.Path 
      myList = myList & strFileName & " - " & strFilePath & vbNewLine 
     End If 

    Next 

    'go through all subflders 
    For Each objF In objFolders 
     Call listImages(objF.Path) 
    Next 

    Debug.Print myList 

    Set objFolder = Nothing 
    Set objFile = Nothing 
    Set fso = Nothing 


End Sub 
Смежные вопросы