パスからすべてのフォルダとそのサブフォルダをループするソリューションを作成し、条件に基づいてファイルを移動します。特定のフォルダとそのサブフォルダのリストをループするVBAマクロ
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
に追加しようとしましたが、毎回実行するとその行にエラーが発生します。どのような提案を正しく書く方法を教えてください?どうもありがとうございました。