VBA – 复杂的文件打开

我目前已经编码如何打开某个文件夹中的所有文件

Dim MyFolder As String Dim MyFile As String MyFolder = "K:\Data Directories\Acquisitions" MyFile = Dir(MyFolder & "\*.xlsx") Do While Len(MyFile) > 0 Workbooks.Open FileName:=MyFolder & "\" & MyFile MyFile = Dir Loop 

现在我试图打开具有相同名称的多个文件夹中的所有文件。

例如:

 Dim MyFolder As String Dim MyFile As String Dim MyFolder2 As String MyFolder = "K:\Data Directories\Acquisitions" MyFolder2 = MyFolder & "*\June 2015" MyFile = Dir(MyFolder2 & "\*.xlsx") Do While Len(MyFile) > 0 Workbooks.Open FileName:=MyFolder2 & "\" & MyFile MyFile = Dir Loop 

问题是我在2015年6月之前放置的*。它在path代码中以实际的“*”出现,而不是通配符。

该代码旨在selectAcquisition目录中的所有文件夹,然后查看其中的2015年6月文件夹。 从那里,应该打开这些多个2015年6月文件夹中的所有Excel文件。 我究竟做错了什么?

我想这会做你想做的。 试一试,看看会发生什么。

 Sub DoFolderPart1() Dim FileSystem As Object Dim HostFolder As String HostFolder = "K:\Data Directories\Acquisitions" Set FileSystem = CreateObject("Scripting.FileSystemObject") DoFolder FileSystem.GetFolder(HostFolder) End Sub Sub DoFolder(Folder) Dim SubFolder Dim strName As String Dim pos As Integer For Each SubFolder In Folder.SubFolders DoFolder SubFolder Next Dim File strName = Folder.name pos = InStr(strName, "June 2015") If pos > 0 Then For Each File In Folder.Files If Right(File, 4) = "xlsx" Then Workbooks.Open Filename:=File End If Next End If End Sub 

我根据我的答案在这个循环所有子文件夹使用VBA