Vba 如何通过下拉列表更改word文件的标题
我想使用宏帮助在下拉列表的基础上更改标题 我试图通过下面的代码查找word文件中的所有项目,但我的标题中的文本框似乎不在ActiveDocument.ContentControls列表中。你介意帮我解决我的问题吗 我的“测试”消息从未出现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
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