Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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 Excel功能区下拉列表_Xml_Excel_Vba_Ribbon - Fatal编程技术网

Xml Excel功能区下拉列表

Xml Excel功能区下拉列表,xml,excel,vba,ribbon,Xml,Excel,Vba,Ribbon,我有一个Excel加载项,它使用XML向功能区中添加了一个选项卡 该选项卡有一个下拉列表,其中包含三个选项。当我选择一个与当前值不同的选项时,宏运行正常,但当我单击下拉列表且值保持不变时,宏不会运行 宏将更新选定单元格的格式。当我点击dropwdown时,如何运行宏,即使值保持不变。以下是我的xml和vb代码: XML: 为什么要在第三个格式掩码中转义前斜杠?如果在退出dtFormat之前添加index=-1,会发生什么情况?(很抱歉问了一个看似基本的问题,但为自定义功能区设置“测试台”需要相当

我有一个Excel加载项,它使用XML向功能区中添加了一个选项卡

该选项卡有一个下拉列表,其中包含三个选项。当我选择一个与当前值不同的选项时,宏运行正常,但当我单击下拉列表且值保持不变时,宏不会运行

宏将更新选定单元格的格式。当我点击dropwdown时,如何运行宏,即使值保持不变。以下是我的xml和vb代码:

XML:


为什么要在第三个格式掩码中转义前斜杠?如果在退出dtFormat之前添加
index=-1
,会发生什么情况?(很抱歉问了一个看似基本的问题,但为自定义功能区设置“测试台”需要相当长的时间,因此测试是禁止的)。正斜杠的转义是excel在将单元格格式化为dd/mmm/yyyy时的工作方式<代码>索引=-1没有什么不同。真的吗?!?这不是我的excel的工作方式,但当尝试在其他人的系统上调试时,很高兴知道。这就是下拉菜单的工作方式。使用下拉列表中的值,添加一个按钮以触发numberformat更改。
<group id="pvt" label="Formatting">       
  <dropDown id="ddItem" label="Date Format" onAction="dtFormat">
  <item id="Item1" label="dd-mmm-yyyy"/>
  <item id="Item2" label="dd-mmm-yy"/>
  <item id="Item3" label="dd/mmm/yyyy"/>
  </dropDown>
</group >
Public Sub dtFormat(control As IRibbonControl, ID As String, index As Integer)
    If index = 0 Then
        Selection.NumberFormat = "dd-mmm-yyyy"
    ElseIf index = 1 Then
        Selection.NumberFormat = "dd-mmm-yy"
    ElseIf index = 2 Then
        Selection.NumberFormat = "dd\/mmm\/yyyy"
    End If

End Sub