Excel 统计文件夹中超过特定​​值的文件的函数(文件名是数字)

Excel function to count files in folder above certain value (filenames are numbers)

我有以下代码计算一个目录中有多少文件:

Function FileCount(ByVal ImageType As String) As Variant

Dim FSO As Object, Files As Object

Set FSO = CreateObject("Scripting.FileSystemObject")
Set Files = FSO.GetFolder(ThisWorkbook.Path & "\Images\" & ImageType).Files

FileCount = Files.Count - 1

End Function

它有点动态 - 它仅限于与 Excel 文件位于同一目录中的图像文件夹,但可以通过输入变量(ImageType ) 在单元格中键入公式时。

每个子目录中的所有图像都已编号,上面的代码计算目录中的所有文件,无论文件名或文件类型如何(所有图像均为 .jpg)。 FileCount = Files.Count - 1 行的负 1 部分需要根据 'off by one error' 进行调整以供参考。

但是,我希望能够计算出有多少文件编号超过某个值(例如,名称大于 1000 的任何文件)。有没有一种简单的方法来修改这段代码来做到这一点?我不需要将值(例如 1000)作为函数的输入,只需要在代码中的某处指定它即可。

谢谢,希望这得到充分解释。

您可以使用循环和 Val()

Function FileCount(ByVal ImageType As String) As Variant

    Dim FSO As Object, Files As Object, f As Object, n As Long
    
    Set FSO = CreateObject("Scripting.FileSystemObject")

    For Each f In FSO.GetFolder(ThisWorkbook.Path & "\Images\" & ImageType).Files
        If Val(f.Name) > 1000 Then n = n + 1
    Next f

    FileCount = n

End Function