VBA excel 计算文件夹(和文件)的总数

用户1509923

我有以下脚本。想要文件夹、子文件夹和文件的数量:

Sub CountFiles(ByVal path1 As String)

Dim fso As Object
Dim subfolder As Object
Dim file As Object
Dim folder As Object
Dim stetje As Long

Set fso = CreateObject("Scripting.FileSystemObject")

Set folder = fso.GetFolder(path1)

For Each subfolder In folder.SubFolders
 CountFiles (subfolder.path)
 
Next subfolder

For Each file In folder.Files


Range("A" & Rows.Count).End(xlUp).Offset(1, 0) = file.path



Next file


Set fso = Nothing
Set folder = Nothing
Set subfolder = Nothing
Set file = Nothing

End Sub

你称之为:

Sub someStuff()
Call CountFiles ("c:/temp/test/")
End Sub

此脚本将所有文件夹、子文件夹和文件的路径写入 Excel 单元格

但我真正想要的是计算所有的出现的总到一个变量。

所以而不是这个:

 For Each file In folder.Files
    
    
    Range("A" & Rows.Count).End(xlUp).Offset(1, 0) = file.path
    
    
 Next file

我想要这样的东西:

 For Each file In folder.Files
    
    number = number +  file.path.Count // of course this line is completely pseudo

 Next file

所以想要的输出是例如数字:2345 而不是 2345 行,并写出路径。

任何帮助/提示将不胜感激!

罗布森

这是一种方法:

Function CountFiles(ByVal path As String) As Long

    Dim fso As Object
    Dim folder As Object
    Dim subfolder As Object
    Dim amount As Long
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    Set folder = fso.GetFolder(path)
    For Each subfolder In folder.SubFolders
        amount = amount + CountFiles(subfolder.path)
    Next subfolder
    
    amount = amount + folder.Files.Count
    
    Set fso = Nothing
    Set folder = Nothing
    Set subfolder = Nothing
    
    CountFiles = amount

End Function

Sub someStuff()
    MsgBox CountFiles("c:/temp/test/")
End Sub

我已经把 sub 变成了一个函数,它返回在该文件夹和子文件夹中找到的文件数量。和以前一样,这是递归的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Excel VBA 搜索子文件夹

使用excel vba宏制作文件夹和文件,并以树形视图和超链接显示

删除文件夹VBA中的非Excel文件

删除文件,然后在Excel 2010 VBA中的文件夹

使用VBA获取文件夹中的Excel文件列表

Excel VBA 在文件夹中找不到 xlsx 文件

Excel VBA从文件夹中的文件更新主列表

Excel VBA忽略目录中的特定文件夹/文件

从excel文件vba循环文件夹名称

从文件夹和子文件夹中获取文件列表 Excel VBA

VBA-将文件夹列表导入Excel范围

在VBA Excel中动态创建文件夹

Excel Vba 如何避免重复迭代文件夹

使用excel VBA创建多个文件夹

在文件夹中搜索文件夹 (Excel-VBA)

在Excel VBA中创建文件夹和子文件夹

Excel VBA:文件夹名称未知但扩展名已知的文件夹路径

Excel VBA:删除文件夹中的任何空Excel文件

VBA Excel将文件保存在Excel宏创建的文件夹中

VBA:文件夹路径列表,返回excel文件路径列表,然后编辑excel

Excel VBA代码将文件夹中的rtf文件批量转换为pdf文件

Excel VBA - 从静态文件夹名称复制文件并粘贴到 ActiveCell 中的文件夹名称中

使用VBA删除FTP文件夹中的文件和文件夹

VBA:如何打开文件夹中最近的两个excel文件

VBA - Excel - 在文件夹中的多个文件中搜索多个字符串

Excel VBA - 遍历文件夹中的文件,复制范围,粘贴到此工作簿中

比较Excel VBA中文件的两个文件夹

使用excel VBA将文件自动分类到文件夹中

使用Excel VBA获取文件夹/目录中的文件名列表