我在文件夹树中按月分组报告
" somepath \ YYYY \ MMMYYYY"
例如"somepath\2017\MAR2017"
。
显然,Year文件夹中最多可能有12个文件夹"MMMYYYY"
。
系统从名称中按月标识的最后一个文件夹上载文件。即在文件夹Jan2017,Feb2017,Mar2017中它应该从2017年3月起上载文件。
我尝试将foldername转换为数字:
Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
Dim ObjFolder : Set ObjFolder = fso.GetFolder("somepath\2017\")
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 = "somepath\2017\"&a&"\"
如何识别最大数量或最大月数?
答案 0 :(得分:1)
以下工作:
Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
Dim ObjFolder : Set ObjFolder = fso.GetFolder("somepath\2017\")
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\")