ディレクトリ内のサブフォルダをループする外部ループを使用するだけです。&は、そのサブフォルダ内のファイルを反映する各サブフォルダにマスターファイルを作成します。ファイル構造はすべて同じですので、各サブフォルダ内のすべてのファイルから蓄積されたすべてのデータを保持するマスターファイル用のテンプレートとして1つのファイルのみを必要とします。他のフォルダのファイル構造が異なるので、各サブフォルダにマスターファイルが必要です。VBA内部ループを終了しますが、内部ループに戻ります
内部ループサブフォルダ内のファイルの1つをファイルのヘッダと名前(名前& "マスタ"をファイル名に変更)にコピーしたいだけなので、 'exit for'を使用するとループが戻りますもう一度内側のループに戻り、必要のない他のすべてのファイルをループします。
これを行うにはより良い方法がありますが、これは私が持っているものであり、内側のループが外側のループに戻って、なぜステートメントを終了するときに次のサブフォルダに戻るのか内部のループで?
私はちょうど外側のループを使って各フォルダを初期化しています。内側のループを呼び出すことを除いて、このループ内では何もしません。すべての建設的なフィードバックのための
Sub DoFolder(Folder)
Dim SubFolder
For Each SubFolder In Folder.SubFolders
Dim IsExecuted As Boolean
Dim Item
Dim filename
Dim lastcol As Integer
For Each Item In SubFolder.Files **<<<< returns here**
If Not IsExecuted Then
Exit For
Else
filename = Item.Name
Call CreateMasterCopy(removename(filename), strStartDir, SubFolder.Name)
Call findcolumncount(Item)
IsExecuted = True
End If
Next
Next **<<<< returns to inner loop from here**
End sub
おかげ
アンドリュー
EDIT:今すぐ下記のコードはまさに私が今行って内部ループで何をしたいん。
Sub DoFolder(Folder)
Dim SubFolder
Dim filename As String
For Each SubFolder In Folder.SubFolders
'search for file with Pattern at end to load this file into the filename variable
filename = Dir(SubFolder & "\* - MyPattern.csv")
Call CreateMasterCopy(removename(filename), strStartDir, SubFolder.Name)
Next
End Sub
'Exit For'がヒットした場合、マクロは' SubFolder'ではなく、 'Item'の次の項目に移動します。 – BruceWayne
これは内側のループに戻りますが、 'SubFolder'は次のループです。それは何を期待していますか? –
@ mats-mugサブフォルダの外側ループに戻り、次のサブフォルダにファイルを開きたいと思います。 – Andrew