2017-07-17 10 views
1

私はサブフォルダから月という名前の最後のフォルダを検索し

"somepath \のYYYYの\のMMMYYYY" フォルダツリーの例"somepath\2017\MAR2017"については

に数ヶ月ごとにグループ化されたレポートを持っています。 明らかに、Yearフォルダに1235までのフォルダ"MMMYYYY"が存在することがあります。 システムは、その名前でmonthで示される最後のフォルダからファイルをアップロードします。私。 Jan2017、Feb2017、Mar2017のフォルダの間にMar2017からファイルをアップロードする必要があります。

I番号にフォルダ名を変換しようとした:

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\") 
関連する問題