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


4

我正试图找到一种列出多个word文档中页面数量的方法,所有这些都保存在同一个文件夹中。这可能使用VBA吗?

我在用:

  • Windows 7和
  • Microsoft Office 2007

请给我们一些细节; 什么版本的Word?你有什么尝试过的?它必须是VBA吗?如果是这样,请发布您正在使用的一些代码。
CharlieRB 2013年

我正在使用Microsoft Office Word 2007.我没有尝试任何东西,我的研究揭示了一些与此任务相关但未提供解决方案的vba子例程。我指定了VBA,因为我认为可以遍历所有必要的文档,但没有专业知识来生成这样的代码。
BobJim 2013年

如果您使用上面提供的信息更新您的问题,即赢得办公室2007等
将会很好

感谢Deesbek,我添加了一些关于我的系统的更多信息。我将在未来的帖子中添加此级别的详细信息,感谢您的建议。
BobJim 2013年

Answers:


3

我不知道如何在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-view中查看列)

如果你真的想要你也可以自己翻译成VBA(Word-macro)。


非常感谢Rik,你现在鼓励我学习VBS!
BobJim 2013年

0

请参阅我之前对类似问题的回答 - 这可能有所帮助。

从技术上来说,有可能实现,但并不总是可靠 - 特别是没有(计算上)昂贵,没有人想要 - 而我的答案解释了原因。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.