如何使用VBA从Word宏的DropDownList中选择一个值?

时间:2019-05-28 14:22:28

标签: vba vbscript ms-word

我正在同时使用vbscript和vba创建一个宏,该宏正在被脚本代码调用并且运行良好,但是当我尝试在宏本身之外选择一个值时,我一直在错误地尝试尝试设置值。

我已将dropdownlist命名为“ Result”,并且当我尝试设置它不起作用时,我还尝试使用默认名称“ DropDownList”,但是这些选项似乎都不起作用,也许我缺少对象参考。

我已经声明了所需的对象

Set objWord = CreateObject("Word.Application")
Set activeDoc= objWord.ActiveDocument

activeDoc.FormFields("Result").DropDown.Value = 2

我现在遇到的错误是“不存在所请求的缩色法。”

我能想到的唯一解决方案是在宏中创建下拉菜单时设置值:

ActiveDocument.Tables(1).Cell(Row: = 4, Column: = 4).Select
Set objCC =
    Selection.Range.ContentControls.Add(wdContentControlDropDownList)
With objCC
    .Title = "Result"
    .Tag = "Result"
    .DropdownListEntries.Add("Passed", "Passed").Select
End with

2 个答案:

答案 0 :(得分:0)

我把所有事情弄糟了,但是最后我意识到了我的错误。我没有使用标签,因此Item松动,我不得不使用正确的内容控件的索引

Set objCc = activeDoc.ContentControls.Item(5)
Set objLe1 = objCc.DropdownListEntries.Item(1)
objLe1.Select

答案 1 :(得分:0)

非常感谢您的代码,我很难找到做到这一点的方法!

我只添加:

With ThisDocument.tables(blabla).Cell(x,y)
        Set objCc = .Range.ContentControls.Item(1)
        Set objLe1 = objCc.DropdownListEntries.Item(2)
        objLe1.Select
End With

它在我的项目中完美运行!再说一次,再见!!