Vba 如何通过下拉列表更改word文件的标题

Vba 如何通过下拉列表更改word文件的标题,vba,ms-word,Vba,Ms Word,我想使用宏帮助在下拉列表的基础上更改标题 我试图通过下面的代码查找word文件中的所有项目,但我的标题中的文本框似乎不在ActiveDocument.ContentControls列表中。你介意帮我解决我的问题吗 我的“测试”消息从未出现 For Each oCC In ActiveDocument.ContentControls If oCC.Tag = "CB_DOC_TYP" Then MsgBox "doc Type" For Each oDD

我想使用宏帮助在下拉列表的基础上更改标题

我试图通过下面的代码查找word文件中的所有项目,但我的标题中的文本框似乎不在ActiveDocument.ContentControls列表中。你介意帮我解决我的问题吗

我的“测试”消息从未出现

For Each oCC In ActiveDocument.ContentControls
    If oCC.Tag = "CB_DOC_TYP" Then
        MsgBox "doc Type"

        For Each oDD In ActiveDocument.ContentControls
            If oDD.Tag = "TB_Header_Titel" Then
                oDD.SetPlaceholderText , , oCC.Title
                MsgBox "test"
            End If
        Next oDD
    End If
End If

标题是文档的不同部分。调用
ActiveDocument.ContentControl
时,默认情况下在
wdMainTextStory
部分进行搜索。要获取标题中的内容控件,请尝试以下引用之一:

ActiveDocument.StoryRanges(wdPrimaryHeaderStory).ContentControls

您还可以通过以下方式循环浏览所有文档故事范围:

Dim SR As Object
For Each SR In ActiveDocument.StoryRanges

    'your macro here
    '....

Next

我试过了,但它不起作用…以上三层楼的计算范围为0。ActiveDocument.StoryRanges(wdEvenPagesHeaderStory).ContentControls.Count这意味着您的标题中没有任何ContentControls。使用建议的循环检查它-在循环中添加以下行:
Debug.Print SR.ContentControls.Count
并检查所有结果的总和是否等于您拥有的ContentControls的数量。我在代码Dim SR下面运行,作为ActiveDocument.StoryRanges Debug.Print SR.ContentControls.Count MsgBox中每个SR的对象(SR.ContentControls.Count)下一个SR first msg框是13,ramain是0。这意味着所有内容控件都在一个故事范围内,可能在主文本区域。标题中没有任何内容。但我的文本字段在标题中可用。当我双击标题编辑标题时,它就在那里。您介意帮我检查它是否在那里吗!?
ActiveDocument.StoryRanges(wdFirstPageHeaderStory).ContentControls
Dim SR As Object
For Each SR In ActiveDocument.StoryRanges

    'your macro here
    '....

Next