计算特定文件夹中具有特定文件名的文件

时间:2016-12-20 17:03:00

标签: excel excel-vba loops count vba

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

定义:

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

列AE定义文件夹路径(“文件夹”)。 列AH定义文件名(“ExcelFN”)。

单元格$labelname1=$_POST['itemMetaArray']['label1']; $labelname2=$_POST['itemMetaArray']['label2']; 定义此函数应循环的行数(AI1)。

我希望函数(1)循环通过x行,(2)计算在定义的文件夹中找到具有定义的FileName(FileName = cell“AH& i”)的文件数(FolderPath = cell“AE & i“),然后(3)将文件数放入单元格”AI& i“,最后(4)移动到下一行”i“并重复前面的步骤。

问题:

我的问题是我的代码正在放置1,2,3,4,5等......一直到AI - 作为一个注释,当我向下移动时,我没有连续更大的文件数,很明显,人们不能保存同名的多个文件。

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

CODE:

最后 - 这是我的代码:

AI1 = "x"

1 个答案:

答案 0 :(得分:1)

只需在循环开头重置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