我正在尝试找到一种方法来列出多个 Word 文档中的页数,这些文档都保存在同一文件夹中。使用 VBA 可以实现吗?
我在用:
- Windows 7 和
- 微软 Office 2007
答案1
我不知道如何在 VBA 中(在 Word 本身中)执行此操作,但您可以创建一个小型 VBS 文件并将其拖放到目录中并双击它:
Const wdStatisticPages = 2
Set FSO = CreateObject("Scripting.FileSystemObject")
currentPath = fso.GetAbsolutePathName(".")
set FLD = FSO.GetFolder(currentPath)
Set objWord = CreateObject("Word.Application")
objWord.Visible = False
For Each Fil In FLD.Files
If UCase(FSO.GetExtensionName(Fil.name)) = "DOCX" Then
Set objDoc = objWord.Documents.Open(currentPath & "\" & Fil.Name)
intPages = intPages + objDoc.ComputeStatistics(wdStatisticPages)
objDoc.Saved = True
objDoc.Close
End If
Next
objWord.Quit
Wscript.Echo "Total pages: " & intPages
Set oShell = Nothing
Set FLD = Nothing
Set FSO = Nothing
假设文件都是.docx
扩展名。
灵感(和解释)来自这里。为简单起见,我没有使用,objWMIService
而只是使用了Scripting.FileSystemObject
。您也可以设置objWord.Visible = False
为True
。您将看到 Word 应用程序闪烁。
您还可以在“Windows 资源管理器”中显示页面。只需右键单击文件上方的列并选择更多,您就可以选择pages
显示每个 Word 文档的页面列。这样您就可以在打开文档之前看到页数。(您需要在视图中才能Details
看到列)
如果您真的愿意,您也可以自己将其翻译为 VBA(Word 宏)。
答案2
看看我的之前对类似问题的回答-这可能会有帮助。
从技术上来说,这是可以实现的,但并不总是可靠的——特别是在不花费(计算上)昂贵的情况下,这是没人想要的——我的回答解释了原因。