我知道这个问题之前已经被问了很多次,我已经查看了之前的建议,但是我无法使我的代码运行起来。
所以,我有一个名为“Report”的文件夹,其中还包含多个文件夹。这些文件夹包含.xlsx和.zip文件。
每个文件还包含一个名为“2016”的文件夹,在其下有12个文件夹“January”,“February”等等,“December”。
以下是一个子文件夹的示例 我想做的是遍历所有这些子文件夹,并根据创建日期将.xlsx和.zip文件移动到月度文件夹中。
例如,位于11月份位置创建的所有.xlsx和.zip文件将被移动到同一位置中的“2016”中的“November”文件夹中。
我创建了这个宏,但它很耗时,因为每次都需要更改每个子文件夹的路径并针对每个子文件夹运行它。
所以,我有一个名为“Report”的文件夹,其中还包含多个文件夹。这些文件夹包含.xlsx和.zip文件。
每个文件还包含一个名为“2016”的文件夹,在其下有12个文件夹“January”,“February”等等,“December”。
以下是一个子文件夹的示例 我想做的是遍历所有这些子文件夹,并根据创建日期将.xlsx和.zip文件移动到月度文件夹中。
例如,位于11月份位置创建的所有.xlsx和.zip文件将被移动到同一位置中的“2016”中的“November”文件夹中。
我创建了这个宏,但它很耗时,因为每次都需要更改每个子文件夹的路径并针对每个子文件夹运行它。
Sub Move_Files_To_Folder()
Dim Fso As Object
Dim FromPath As String
Dim ToPath As String
Dim FileInFromFolder As Object
'Change Path
FromPath = "C:\Report\Shipment\"
ToPath = "C:\Report\Shipment\2016\"
Set Fso = CreateObject("scripting.filesystemobject")
For Each FileInFromFolder In Fso.GetFolder(FromPath).Files
'Change month and year
If (Month(FileInFromFolder.DateCreated)) = 11 And (year(FileInFromFolder.DateCreated)) = 2016 _
And (InStr(1, FileInFromFolder.name, ".xlsx") Or InStr(1, FileInFromFolder.name, ".zip")) Then
FileInFromFolder.Move (ToPath & MonthName(Month(FileInFromFolder.DateCreated)) & "\")
End If
Next FileInFromFolder
End Sub
我希望自动化我的宏,使其能够在所有子文件夹中运行,而不是一个接一个地更改路径。
请问有什么建议吗?非常感谢。