简体   繁体   中英

Access VBA Import Specific Excel Files from different subfolders

I have a problem that I can't find the right code to do it.

So I have a Main Folder (C:\\Products) with multiple subfolders that correspond to different the products (C:\\Products\\Chocolates , C:\\Products\\Milk and many more). Each subfolder have many excel files but I just want to import the one that is named sells.xlxs. Each subfolder have a sells.xlxs and I Want to import all sells.xlxs to an access Database.

EDIT: Sorry I didn't Upload the code I was using:

Sub Insert2()
  Const cstrSheetName As String = "Weekly"
  Dim strDir As String
  Dim strFile As String
  Dim strTableName As String
  Dim MyPath As String
  Dim i As Long

  i = 0
   MyPath = "C:\Products"
   strTableName = "Sells"
  If Left(MyPath, 1) <> "\" Then
   strDir = MyPath & "\"
  Else
   strDir = MyPath
 End If
   strFile = Dir(MyPath & "\Sells.XLSX")
While strFile <> ""
 i = i + 1
 strFile = strDir & strFile
 Debug.Print "importing " & strFile

     DoCmd.TransferSpreadsheet _
    TransferType:=acImport, _
    SpreadsheetType:=acSpreadsheetTypeExcel9, _
     TableName:=strTableName, _
    FileName:=strFile, _
    HasFieldNames:=True, _
    Range:=cstrSheetName & "$"

  strFile = Dir()

 Wend
  End Sub

Do you think you can help me?

Many thanks

Dim FileSystem As Object
Dim HostFolder As String

HostFolder = MyPath

Set FileSystem = CreateObject("Scripting.FileSystemObject")
DoFolder FileSystem.GetFolder(HostFolder)

Sub DoFolder(Folder)
    Dim SubFolder
    For Each SubFolder In Folder.SubFolders
        Dim File
        For Each File In Folder.Files
            ' Operate on each file
        Next
    Next

End Sub

Code credit to Rich, rearranged code so it doesn't recursively iterate all subfolders, just the subfolders of MyPath

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM