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
我有以下代码计算一个目录中有多少文件:
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