错误5180" Word无法打开文档模板"

时间:2015-10-05 06:41:10

标签: vba excel-vba ms-word word-vba excel

我想使用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  

如何打开这些文件,还是有另一种方法来获取页数?

1 个答案:

答案 0 :(得分:0)

使用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对象,或者。