在Excel中调用GetCrossReferenceItems(wdRefTypeHeading)
我正在尝试使用模板将excel内容导出到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)
。
为什么会发生?
您是晚期绑定与MS Word,因此MS Excel不能理解什么wdRefTypeHeading
是。 对于MS Excel,该variables的值为0
而对于MS Word,该常量的值为1
。
尝试这个。 ( 试验和testing )
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 Sub