まず、自分のコードの定義を説明し、次に問題を定義し、最後に現在のコードを表示します。特定のフォルダに特定のファイル名を持つファイルをカウントする
定義:
私は特定/定義された名前でフォルダ内の特定/定義された名前を持つファイルの数をカウントするループした関数を作成しようとしています。
列AEは、フォルダパス(「フォルダ」)を定義します。 列AHはファイル名( "ExcelFN")を定義します。
セルAI1
は、この関数がループする行数(AI1 = "x"
)を定義します。
定義されたフォルダ内に定義されたFileName(FileName =セル "AH &")がいくつあるかを(1)サイクル数×(2)カウントすると、FolderPath = cell "AE (3)ファイル「AI &」にファイル数を配置し、最後に(4)次の行「i」に移動して前のステップを繰り返す。
問題:
私の問題は、私のコードは、すべての道AIダウン...など、1、2、3、4、5を配置していることである - 注意点として、私は連続して大きくなる必要はありません。同じ名前の複数のファイルを保存できないことは明らかです。
私の推測では、次の行のファイル数を数え、前の行のファイル数に現在の行のファイル数を追加する前に、NumFilesをゼロにリフレッシュしていないと思います。
CODE:FINALLY
- ここに私のコードです:
Sub CountFiles()
Sheets("Sheet1").Activate
Dim i As Integer
Dim x As Integer
Dim Folder As String
Dim ExcelFN As String
Dim NumFiles As Integer
x = Sheets("Sheet1").Range("AI1").Value '====>> Define Number of Rows <<====
For i = 2 To x
Folder = Sheets("Sheet1").Range("AE" & i).Value & "\"
ExcelFN = Sheets("Sheet1").Range("AH" & i).Value
Filename = Dir(Folder & ExcelFN & "*" & ".xlsm")
While Filename <> ""
NumFiles = NumFiles + 1
Filename = Dir()
Wend
Sheets("Sheet1").Range("AI" & i) = NumFiles
Next i
End Sub