Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2401|回复: 3

请问如果统计一个多层目录下的所有子文件夹内word文档的字数

[复制链接]
发表于 2020-6-18 20:56 | 显示全部楼层 |阅读模式
本帖最后由 cionysus 于 2020-6-24 15:11 编辑

一个多层文件夹,我想统计里面所有word文档(包括doc和docx格式)的字数。
统计的结果生成在顶层目录内一个叫“字数统计.xlsx”的excel文档里。
请问用excel vba该如何实现?
以下压缩包是实例文件和结果excel文件。
包含docx或者doc的目录(目录有多层).rar (38.1 KB, 下载次数: 5)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2020-6-20 17:37 | 显示全部楼层
回复

使用道具 举报

发表于 2020-6-23 11:40 | 显示全部楼层
  1. Dim mf&
  2. Sub lqxs()
  3. Dim Fso As Object, sPath$, WD As Object, i&, Arrf$(), aa, nm$, wj$, intWords%
  4. Dim doc As Object
  5. sPath = ThisWorkbook.Path & ""
  6. Set Fso = CreateObject("Scripting.FileSystemObject")
  7. Set WD = CreateObject("Word.Application")
  8. WD.Visible = False
  9. Sheet1.Activate
  10. [a2:b500].ClearContents
  11. Call GetFiles(sPath, Fso, Arrf)
  12. For i = 1 To UBound(Arrf)
  13.     aa = Split(Arrf(i), "")
  14.     nm = aa(UBound(aa))
  15.     wj = Split(nm, ".")(0)
  16.     Cells(i + 1, 1) = wj
  17.     Set doc = WD.documents.Open(Arrf(i))
  18.     intWords = WD.ActiveDocument.BuiltinDocumentProperties(15)
  19.     Cells(i + 1, 2) = intWords
  20.     doc.Close
  21.     Set doc = Nothing
  22. Next
  23.     Set WD = Nothing
  24. End Sub

  25. Sub GetFiles(ByVal sPath$, ByRef Fso As Object, ByRef Arrf$())
  26.     Dim Folder As Object
  27.     Dim SubFolder As Object
  28.     Dim File As Object
  29.     Set Folder = Fso.GetFolder(sPath)
  30.    
  31.     For Each File In Folder.Files
  32.         If InStr(File, ".doc") Then
  33.             mf = mf + 1
  34.             ReDim Preserve Arrf(1 To mf)
  35.             Arrf(mf) = File.Path
  36.         End If
  37.     Next
  38.     For Each SubFolder In Folder.SubFolders
  39.         Call GetFiles(SubFolder.Path, Fso, Arrf)
  40.     Next
  41.     If mf = 0 Then MsgBox "没有文件,程序退出。"
  42.     Set Folder = Nothing
  43.     Set File = Nothing
  44. End Sub
复制代码

字数统计.rar

17.1 KB, 下载次数: 26

评分

参与人数 1学分 +3 收起 理由
cionysus + 3 十分感谢!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2020-6-24 15:10 | 显示全部楼层

运行成功,十分感谢!

我想顺便再请问下,如果我想生成的结果报告文件“字数统计”是word文件,内容还是这个两列的表格,该怎么实现?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 07:58 , Processed in 0.159968 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表