2016-07-26 68 views
2

運行下面的代碼會引發「請求的收集成員不存在」所有搜索都沒有產生解決方案。Excel VBA修改excel中的word doc - 收集成員錯誤

Sub WordTemplate() 


Dim objWordapp As Object 
Set objWordapp = CreateObject("Word.Application") 
fileStr = "\\int.chc.concepts.co.nz\users\CBotting\Documents\VBA programming\SD Basic Template.docx" 

objWordapp.Documents.Open FileName:=fileStr 
With objWordapp.Selection.Sections(1).Headers(wdHeaderFooterPrimary) 
    If .Range.Text <> vbCr Then 
     MsgBox .Range.Text 
    Else 
     MsgBox "Header is empty" 
    End If 
End With 

End Sub 

我試圖解決這一標題對象

+1

您是否添加了對_Microsoft Word Object Library_的引用? –

回答

0

問題不在於後期綁定。問題在於VBA不知道wdHeaderFooterPrimary的值,而沒有引用Microsoft Word xx.x對象庫。我告訴VBA wdHeaderFooterPrimary的值,那麼你的代碼在沒有引用Word庫集的情況下工作。

Sub WordTemplate() 
    Const wdHeaderFooterPrimary = 1 

    Dim objWordapp As Object 
    Set objWordapp = CreateObject("Word.Application") 
    fileStr = "\\int.chc.concepts.co.nz\users\CBotting\Documents\VBA programming\SD Basic Template.docx" 

    objWordapp.Documents.Open Filename:=fileStr 
    With objWordapp.Selection.Sections(1).Headers(wdHeaderFooterPrimary) 
     If .Range.Text <> vbCr Then 
      MsgBox .Range.Text 
     Else 
      MsgBox "Header is empty" 
     End If 
    End With 

End Sub 
+0

感謝您澄清實際問題。很好,不必參考圖書館。很好的回答 – CamBotting

+0

感謝您的支票!關於使用CreateObject的一個好處是,用戶在自己的機器上具有哪種版本的庫並不重要。 – 2016-07-27 04:10:58

0

的許多不同的變化正在運行,以便在需要的VBA工具菜單中的Microsoft Word 16.0對象庫設定早期綁定方法。現在的作品