2016-03-07 72 views
0

是否有一个原因,为什么我的MS Word VBA宏忽略了我放置在一个形状(富文本框)内的下拉列表?我已经试过指的是它的标签,名称,数量等,我甚至有宏告诉我内容控件的计数:MS Word忽略内容控件里面的富文本框

MsgBox(ActiveDocument.ContentControls.Count) 

我得到0

没有什么工作。如果我把它从形状中取出,它可以正常工作。 MS Word给了我1个项目的计数。但由于某些原因,MS Word将不会在形状内承认它。任何帮助如何做到这一点?

+0

记录一个你在做什么的宏,看看源代码? –

回答

2

编辑为我以前的帖子是完全错误的。

主文本故事中的每个文本框都是可以使用索引编号访问的形状。一个形状具有各种属性,但如果它有一个文本等文本框架。但是在这种情况下,你所需要的范围不叫Range而是TextRange。所以,例如在外形2第一ContentControl中是

ActiveDocument.Shapes(2).TextFrame.TextRange.ContentControls(1)

您可能需要通过你的形状进行迭代,你可能需要验证一个给定的形状一个文本框和/或它有一个TextFrame。

如果您的文本框在另一个Story中,例如页眉或页脚,则可能需要标识相关的StoryRange。

+0

嗨bibadia。这很棒。谢谢!但MS Word只能找到第一个下拉菜单。当我使用ActiveDocument.StoryRanges(wdTextFrameStory).ContentControls.Count时,尽可能地尝试,它只会说1.当我试图循环遍历它们时,它只能找到第一个,尽管我有67个这些下拉嵌套内部形状。任何想法为什么发生这种情况? –

+0

@Steve G:道歉,完全错误的答案 - 我已经编辑它(在一些急速,所以可能有错别字)。 – 2016-03-08 18:13:25

+0

是的!谢谢!我认为你的开放比你想象的要多得多。在VBA中我有点绿色,但是你只是通过解决这个特定问题来帮助我解决很多错误。万分感谢! –