【发布时间】:2016-11-23 18:23:39
【问题描述】:
我创建了一个解决方案,从路径循环遍历所有文件夹及其子文件夹,然后根据条件移动文件。
Sub Move_Files_To_Folder()
Dim Fso As Object, objFolder As Object, objSubFolder As Object
Dim FromPath As String
Dim FileInFolder As Object
FromPath = "C:\Reports\"
Set Fso = CreateObject("Scripting.filesystemobject")
Set objFolder = Fso.GetFolder(FromPath)
For Each objSubFolder In objFolder.subfolders
For Each FileInFolder In objSubFolder.Files
If InStr(1, FileInFolder.name, ".xlsx") Or InStr(1, FileInFolder.name, ".zip") Then
FileInFolder.Move (objSubFolder.Path & "\2016\" & MonthName(Month(FileInFolder.DateCreated)) & "\")
End If
Next FileInFolder
Next objSubFolder
End Sub
它工作正常,但我想调整我的宏以循环遍历我的路径下的特定文件夹及其所有子文件夹。
因此,我想创建一个数组列表,而不是 For Each objSubFolder In objFolder.subfolders,其中包含要循环遍历的路径下的文件夹名称。
像这样的
FoldersName = Array("Shipment", "Backlog", "Released", "Unreleased")
For Each objSubFolder In objFolder.FoldersName
For Each FileInFolder In objSubFolder.Files
'rest of my code
Next FileInFolder
Next objSubFolder
总而言之,我的解决方案循环遍历路径下的所有文件夹和子文件夹,我想将其调整为路径下的文件夹列表及其所有子文件夹。
我尝试创建此 array 并将其添加到 For Each 但每次我运行时都会在该行中收到错误。任何建议请如何正确编写?非常感谢。
【问题讨论】: