【问题标题】:Error 5180 "Word Cannot open document template"错误 5180“Word 无法打开文档模板”
【发布时间】:2016-01-01 18:11:22
【问题描述】:

我想用 Excel VBA 统计 Word 文档的页数,但是有些文件打不开,用

“错误 5180 Word 无法打开文档模板”。

Function PageWord(FullFile_Name As Variant, PF As Long)
Dim objWord As Object
Dim objDoc As Object

On Error Resume Next
Set objWord = CreateObject("Word.Application")
objWord.Visible = False


Set objDoc = objWord.Documents.Open(filename:="" & FullFile_Name & "", ReadOnly:=False)
objDoc.Repaginate


PageWord = objDoc.BuiltinDocumentProperties(14)   'Pages
Debug.Print PageWord & "-" & FullFile_Name


objWord.Quit (False)
End Function  

如何打开这些文件或有其他方法来获取页数?

【问题讨论】:

标签: vba excel ms-word


【解决方案1】:

使用 Microsoft Developer Support OLE File Property Reader 2.1 可以在不打开文件的情况下获取页数

http://www.microsoft.com/en-us/download/details.aspx?id=8422

安装后,您可以实例化属性阅读器的实例并像这样查找页数:

Function PageWord(FullFile_Path as string)

    Dim dso As Object

    Set dso = CreateObject("DSOFile.OleDocumentProperties") 
    dso.Open (FullFile_Path) 
    PageWord = dso.SummaryProperties.PageCount
    dso.Close 

    Debug.Print PageWord & "-" & FullFile_Path

End Function

如果您在函数外部实例化 dso 对象并将其与文件的路径一起传递(或者如果您将其范围限定为可被函数访问),则无需打开和关闭一堆 dso对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    • 2013-02-18
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    相关资源
    最近更新 更多