gpt4 book ai didi

vba - 在 Excel 中调用 GetCrossReferenceItems(wdRefTypeHeading)

转载 作者:行者123 更新时间:2023-12-03 02:58:43 24 4
gpt4 key购买 nike

我正在尝试使用模板将 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文档中,我可以获得列表,但如果我将相同的代码放入Word文档中,列表将始终为空(ubound(~) = 0)优秀。

为什么会发生这种情况?

最佳答案

您与 MS Word 进行了后期绑定(bind),因此 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 Sub

关于vba - 在 Excel 中调用 GetCrossReferenceItems(wdRefTypeHeading),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11946173/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com