从子文件夹中找到最后一个名为 month 的文件夹
Find the last folder named as month from subfolders
我在文件夹树中有按月分组的报告
"somepath\YYYY\MMMYYYY"
例如"somepath17\MAR2017"
。
显然,Year文件夹中最多可能有12个文件夹"MMMYYYY"
。
系统从名称中以月份标识的最后一个文件夹上传文件。 IE。在 Jan2017、Feb2017、Mar2017 文件夹中,它应该从 Mar2017 上传文件。
我尝试将文件夹名称转换为数字:
Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
Dim ObjFolder : Set ObjFolder = fso.GetFolder("somepath17\")
Set fc = ObjFolder.SubFolders 'here I should get all folders with months in their names
For each f in fc
a = Month("01-"&left(f.name, 3)&"-"&right(f.name, 4))
print a
Next
接下来打印:
4
2
3
下一步应该是从中找出最大的数字并将工作文件夹名称设置为
a = MonthName(maxnumber)&"2017"
workingfolder = "somepath17\"&a&"\"
如何确定最大数量或最大月份?
以下有效:
Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
Dim ObjFolder : Set ObjFolder = fso.GetFolder("somepath17\")
Set fc = ObjFolder.SubFolders
For i=0 to fc.count
For each f in fc
a = Month("01-"&left(f.name, 3)&"-"&right(f.name, 4))
Redim Preserve arr(fc.count)
arr(i)=a
Next
Next
arrLen = UBound(arr) 'Find the length of array
For j= 0 to arrLen
If arr(j) > max Then
max=arr(j)
End If
Next
Dim OrgFolder : Set OrgFolder = fso.GetFolder(ObjFolder&"\"&MonthName(arr(0), True)&"2017\")
我在文件夹树中有按月分组的报告
"somepath\YYYY\MMMYYYY"
例如"somepath17\MAR2017"
。
显然,Year文件夹中最多可能有12个文件夹"MMMYYYY"
。
系统从名称中以月份标识的最后一个文件夹上传文件。 IE。在 Jan2017、Feb2017、Mar2017 文件夹中,它应该从 Mar2017 上传文件。
我尝试将文件夹名称转换为数字:
Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
Dim ObjFolder : Set ObjFolder = fso.GetFolder("somepath17\")
Set fc = ObjFolder.SubFolders 'here I should get all folders with months in their names
For each f in fc
a = Month("01-"&left(f.name, 3)&"-"&right(f.name, 4))
print a
Next
接下来打印:
4
2
3
下一步应该是从中找出最大的数字并将工作文件夹名称设置为
a = MonthName(maxnumber)&"2017"
workingfolder = "somepath17\"&a&"\"
如何确定最大数量或最大月份?
以下有效:
Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
Dim ObjFolder : Set ObjFolder = fso.GetFolder("somepath17\")
Set fc = ObjFolder.SubFolders
For i=0 to fc.count
For each f in fc
a = Month("01-"&left(f.name, 3)&"-"&right(f.name, 4))
Redim Preserve arr(fc.count)
arr(i)=a
Next
Next
arrLen = UBound(arr) 'Find the length of array
For j= 0 to arrLen
If arr(j) > max Then
max=arr(j)
End If
Next
Dim OrgFolder : Set OrgFolder = fso.GetFolder(ObjFolder&"\"&MonthName(arr(0), True)&"2017\")