2016-12-23 24 views
2

我有兩個不同類型的文件(xlsm和mdb(Access))循環播放的問題。在文件夾(VBA)中循環播放不同種類的文件

我目前已經寫了一個宏,可以在將一些數據從xlsm複製到mdb文件然後保存mdb文件之前打開1個單個xlsm文件和1個單個mdb文件。

現在,我想通過一個具有50個xlsm文件和50個mdb文件的文件夾來重複此過程。它們具有相同的名稱,例如循環應該這樣做:

  1. 打開名爲「2001」的xlsm和mdb文件。
  2. 執行復制和粘貼等從xlsm到mdb(我寫了這部分)。
  3. 保存mdb文件。
  4. 關閉名爲「2001」的xlsm和mdb文件。
  5. 對該文件夾中的「2002」,「2003」等重複步驟1-4。

我真的很新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