在特定文件夹中使用特定文件名计数文件

我将首先描述我的代码的定义,然后定义我的问题,并最终显示我当前的代码。

定义:

我正在尝试创build一个循环函数来计算具有特定/定义名称的文件夹中具有特定/定义名称的文件的数量。

AE列定义文件夹path(“文件夹”)。 列AH定义了文件名(“ExcelFN”)。

单元格AI1定义了该函数应循环的行数( AI1 = "x" )。

我期望函数(1)循环x行数,(2)在已定义文件夹(FolderPath =单元格“AE&i”)中find已定义文件名(FileName =单元格“AH&i”)的文件数,然后(3)将文件的数目放入单元“AI&i”中,最后(4)移到下一行“i”并重复前面的步骤。

问题:

我的问题是,我的代码是放置1,2,3,4,5等…一路下来AI – 作为一个说明,我没有连续更大的文件计数,因为我沿着列表移动,应该是显然,不能保存多个同名的文件。

我的猜测是,我的代码不会刷新NumFiles为零,然后计算下一行的文件数,只是将当前行的文件计数添加到前一行的文件计数。

码:

最后 – 这是我的代码:

 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 

只需在循环开始时重置NumFiles的值:

 For i = 2 To x NumFiles = 0 '<-- Reset count 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