计算 Word [.doc] 文档中的页数

计算 Word [.doc] 文档中的页数

我正在尝试找到一种方法来列出多个 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 = FalseTrue。您将看到 Word 应用程序闪烁。

您还可以在“Windows 资源管理器”中显示页面。只需右键单击文件上方的列并选择更多,您就可以选择pages显示每个 Word 文档的页面列。这样您就可以在打开文档之前看到页数。(您需要在视图中才能Details看到列)

如果您真的愿意,您也可以自己将其翻译为 VBA(Word 宏)。

答案2

看看我的之前对类似问题的回答-这可能会有帮助。

从技术上来说,这是可以实现的,但并不总是可靠的——特别是在不花费(计算上)昂贵的情况下,这是没人想要的——我的回答解释了原因。

相关内容