Excel VBA:按模式打开子目录中的文件
我有一个目录,其中的文件夹名如下:Excel VBA:按模式打开子目录中的文件,excel,vba,Excel,Vba,我有一个目录,其中的文件夹名如下: "Voy [yyyymmdd]-[no]" 其中,[yyyymmdd]表示日期,[no]以每个文件夹一个为增量 dir\Voy 20140101-100\* dir\Voy 20140105-101\* dir\Voy 20140109-102\* dir\Voy 20140113-103\* dir\Voy 20140117-104\* dir\Voy 20140121-105\* dir\Voy 20140125-106\* [...] 我想访问最新文
"Voy [yyyymmdd]-[no]"
其中,[yyyymmdd]表示日期,[no]以每个文件夹一个为增量
dir\Voy 20140101-100\*
dir\Voy 20140105-101\*
dir\Voy 20140109-102\*
dir\Voy 20140113-103\*
dir\Voy 20140117-104\*
dir\Voy 20140121-105\*
dir\Voy 20140125-106\*
[...]
我想访问最新文件夹中的一个文件(始终命名为“myfile.xlsx”),即:具有最高[no]
我如何做到这一点?
我应该使用引用的DIR函数吗?试试这个。您可能需要根据您的目录和文件命名约定调整此设置
Sub GetLatestFiles()
Dim strDir As String, fs As Object, startFolder As String, subfolder As Object, increment As Integer, latest As Integer, latestFolder As String
Set fs = CreateObject("Scripting.FileSystemObject")
startFolder = "C:\YourDirectory"
Set folder = fs.GetFolder(startFolder)
latest = 0
latestFolder = vbNullString
For Each subfolder In folder.SubFolders
increment = CInt(VBA.Right(subfolder.Path, Len(subfolder.Path) - WorksheetFunction.Find("-", subfolder.Path, 1)))
If increment > latest Then
latest = increment
latestFolder = subfolder.Path
End If
Next
Workbooks.Open latestFolder & "\" & "myfile.xlsx"
End Sub
- 代码在主目录中的所有子文件夹中循环
- 对于每个版本,它会记录版本号并跟踪最高版本
- 最后打开最新的工作簿
最新文件夹
。。我会看一看……忽略最新文件夹
问题。我忘了“-”出现在目录
树的更高位置。修改了工作表函数。查找()
开始查看索引50并向前。