Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 如何获取下拉控件的值?_Xml_Vba_Excel_Ribbon - Fatal编程技术网

Xml 如何获取下拉控件的值?

Xml 如何获取下拉控件的值?,xml,vba,excel,ribbon,Xml,Vba,Excel,Ribbon,功能区上的下拉列表: <dropDown id="dd01" onAction="dd01OnAction"/> 如何获得下拉列表的值?我认为您无法直接获得该值 我通常从集合对象加载下拉列表,并确保集合中的ID与下拉列表中的索引匹配。这样,我可以根据回调中的index或ID参数从集合中获取所有相关值。你能用一些类似的东西作为工作场所吗 这是否意味着每次更改集合后,我都需要使ribbon无效?妈妈咪呀,每次点击都差不多了 是的,但是,通过使用ribbonobject.Invalida

功能区上的下拉列表:

<dropDown id="dd01"
onAction="dd01OnAction"/>

如何获得下拉列表的值?

我认为您无法直接获得该值


我通常从集合对象加载下拉列表,并确保集合中的ID与下拉列表中的索引匹配。这样,我可以根据回调中的index或ID参数从集合中获取所有相关值。你能用一些类似的东西作为工作场所吗

这是否意味着每次更改集合后,我都需要使ribbon无效?妈妈咪呀,每次点击都差不多了

是的,但是,通过使用
ribbonobject.InvalidateControl(“ID”)
可以仅使特定的下拉控件无效,而不是使整个ribbon无效

非常简单的例子:

Sub dd01OnAction(control As IRibbonControl, ID As String, index As Integer)
    '***** Assumes that MyCollection is initialized elsewhere
    '***** and filled with strings :)
    Debug.Print "The value is " & MyCollection.Item(index)

    If MyCollection.Item(index) = "Sky" Then MsgBox "323"

End Sub

我认为你不能直接得到价值


我通常从集合对象加载下拉列表,并确保集合中的ID与下拉列表中的索引匹配。这样,我可以根据回调中的index或ID参数从集合中获取所有相关值。你能用一些类似的东西作为工作场所吗

这是否意味着每次更改集合后,我都需要使ribbon无效?妈妈咪呀,每次点击都差不多了

是的,但是,通过使用
ribbonobject.InvalidateControl(“ID”)
可以仅使特定的下拉控件无效,而不是使整个ribbon无效

非常简单的例子:

Sub dd01OnAction(control As IRibbonControl, ID As String, index As Integer)
    '***** Assumes that MyCollection is initialized elsewhere
    '***** and filled with strings :)
    Debug.Print "The value is " & MyCollection.Item(index)

    If MyCollection.Item(index) = "Sky" Then MsgBox "323"

End Sub

这些值是什么?您如何将它们加载到下拉列表中?@OlleSjögren,请原谅我迟到了。dd01由范围内的单元格值填充。我想我需要引用这些单元格,但它们是动态更改的。我通常从集合中加载下拉列表,并确保集合中的ID与下拉列表中的索引匹配。这样,我就可以根据回调中的
index
参数从集合中获取所有相关值。你能用类似的吗?恐怕可以。但是,通过使用
ribbonobject.InvalidateControl(“ID”)
可以仅使特定的下拉控件无效,而不是使整个功能区无效。@OlleSjögren,谢谢,我现在看到了解决方案。你也许应该把你的评论作为答案,这样我就可以投票并接受了。这些价值观是什么?你如何将它们载入下拉列表?@OlleSjögren,对不起,我迟到了。dd01由范围内的单元格值填充。我想我需要引用这些单元格,但它们是动态更改的。我通常从集合中加载下拉列表,并确保集合中的ID与下拉列表中的索引匹配。这样,我就可以根据回调中的
index
参数从集合中获取所有相关值。你能用类似的吗?恐怕可以。但是,通过使用
ribbonobject.InvalidateControl(“ID”)
可以仅使特定的下拉控件无效,而不是使整个功能区无效。@OlleSjögren,谢谢,我现在看到了解决方案。你也许应该把你的评论作为答案,这样我就可以投票接受了。