2017-07-17 130 views
1

我有个文件夹树查找命名为一个月子文件夹的最后一个文件夹

“somepath \ YYYY \ MMMYYYY”

例如"somepath\2017\MAR2017"分组报告。 显然,Year文件夹中最多可能有12个文件夹"MMMYYYY"。 系统从名称中的月份标识的上一个文件夹中上载文件。即在文件夹Jan2017,Feb2017,Mar2017它应该从Mar2017上传文件。

我尝试了文件夹名转换成数:

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 

它打印下一个:

下一步应该从这些标识最大数字并设置工作文件夹名称为

a = MonthName(maxnumber)&"2017" 
workingfolder = "somepath\2017\"&a&"\" 

如何识别最大数量或最大月数?

回答

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\") 
相关问题