我正在尝试使用模板将excel内容导出到word文档中。
word模板中有不同的标题级别。我需要获得标题列表,以便我可以插入内容从excel到适当的位置。但是,GetCrossReferenceItems(wdRefTypeHeading)不起作用。
代码如下:
Private Sub CommandButton1_Click()
Set wdObj = CreateObject("Word.Application")
wdObj.Visible = True
wdObj.Documents.Open FileName:="test.dotx"
Set wdDoc = wdObj.ActiveDocument
astrHeadings = wdDoc.GetCrossReferenceItems(wdRefTypeHeading)
MsgBox ("headings #" & UBound(astrHeadings)) 'correct number if in word, 0 if in excel
wdObj.Quit
End Sub如果我把完全相同的代码放在word文档中,我可以得到列表,但是如果我把相同的代码放在excel中,列表将总是空的(ubound(~) = 0)。
这一切为什么要发生?
发布于 2012-08-14 13:41:42
您与MS Word的绑定较晚,因此MS Excel无法理解wdRefTypeHeading是什么。对于MS Excel,该变量的值为0,而对于MS Word,该常量的值为1。
尝尝这个。(尝试并测试了)
Const wdRefTypeHeading = 1
Sub Sample()
Dim wdObj As Object, wdDoc As Object
Dim FlName As String
Dim astrHeadings
Set wdObj = CreateObject("Word.Application")
wdObj.Visible = True
FlName = "C:\test.dotx"
Set wdDoc = wdObj.Documents.Open(FlName)
astrHeadings = wdDoc.GetCrossReferenceItems(wdRefTypeHeading)
MsgBox ("headings #" & UBound(astrHeadings))
wdObj.Quit
'~~> Close and Clean Up
Set wdDoc = Nothing
Set wdObj = Nothing
End Subhttps://stackoverflow.com/questions/11946173
复制相似问题