如何修改VBA代码批量统计J2:J1000路径下DOCX文件数至I2:I1000
批量统计多路径下DOCX文件数量的VBA代码
以下是修改后的VBA代码,可实现批量统计J2:J1000每个路径下的DOCX文件数,并写入对应I列单元格:
Sub BatchCountDOCX() Dim Path As String, filename As String Dim count As Integer Dim i As Long ' 用Long适配更大行号范围 ' 遍历第2行到第1000行的目标路径 For i = 2 To 1000 ' 重置计数,避免上一次结果干扰 count = 0 ' 获取当前行J列的路径 Path = Cells(i, "J").Value ' 跳过空路径,对应I列填0 If Path = "" Then Cells(i, "I").Value = 0 GoTo NextRow End If ' 确保路径末尾带反斜杠,避免拼接错误 If Right(Path, 1) <> "\" Then Path = Path & "\" End If ' 拼接DOCX文件筛选规则 Path = Path & "*.docx" On Error Resume Next filename = Dir(Path) ' 遍历统计所有匹配的DOCX文件 Do While filename <> "" count = count + 1 filename = Dir() Loop On Error GoTo 0 ' 恢复默认错误处理 ' 将结果写入对应I列单元格 Cells(i, "I").Value = count NextRow: Next i End Sub
关键改动说明:
- 新增循环遍历逻辑:通过
For i = 2 To 1000逐行处理J列的路径,覆盖J2到J1000的所有目标路径 - 优化路径处理:自动为路径末尾补充反斜杠,避免出现
C:\test*.docx这类错误路径;遇到空路径时直接给对应I列赋值0 - 重置计数变量:每次循环开始时将
count归零,确保每行统计结果独立 - 恢复错误处理:统计完成后恢复默认错误机制,避免全局忽略错误导致的潜在问题
- 行号类型优化:改用
Long存储行号,适配更大的行范围(即使后续超过1000行也无需修改)
内容的提问来源于stack exchange,提问作者Paliouras George
相关产品推荐
相关产品推荐

