Excel / RibbonUI菜单已禁用

时间:2013-04-14 22:48:51

标签: excel-vba ribbon vba excel

注意通过创建复制所有数据,宏和其他代码的新工作簿,解决了以下问题。任何有关导致工作簿“破解”的原因都会受到欢迎!

我有一个带有自定义ribbonui的excel文件。我最近添加了一个带有新菜单的新组,它从第一组中复制并删除了某些项目。

第一组“库”及其所有控件按预期工作。然而,“文档”组中的“documentmenu”菜单显示为灰色,我无法弄清楚原因!

我尝试在菜单中添加getEnabled和普通enabled属性,但它不会触发,菜单包含按钮的任何getEnabled事件也不会触发。

当我第一次打开功能区时,getLabel事件会触发并正确设置标签。

我尝试将组和所有控件重新命名为没有“文档”的东西,以防它以某种方式发生冲突,但是再也没有了。

有谁知道可能导致这种情况发生的原因?

以下是整个customui xml文件。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customUI 
    onLoad="CustomUI.Ribbon_onLoad" 
    xmlns="http://schemas.microsoft.com/office/2009/07/customui">
  <ribbon>
    <tabs>
      <tab 
          id="Main" 
          label="Initech">
        <group
            id="Library"
            label="Library"
            tag="Library"
            centerVertically="true">
          <menu
              id="LibraryMenu"
              tag="Library"
              image="gear"
              getLabel="CustomUI.Menu_getLabel">
            <button
                id="LibraryMenu_Open"
                tag="Library"
                label="Open Library"
                imageMso="FileOpen"
                getEnabled="CustomUI.Button_getEnabled"
                onAction="CustomUI.Button_onAction" />
            <button
                id="LibraryMenu_New"
                tag="Library"
                label="New Library"
                imageMso="FileNew"
                getEnabled="CustomUI.Button_getEnabled"
                onAction="CustomUI.Button_onAction" />
            <menuSeparator
                id="LibraryMenu_Separator0" />
            <button
                id="LibraryMenu_Save"
                tag="Library"
                label="Save"
                imageMso="FileSave"
                getEnabled="CustomUI.Button_getEnabled"
                onAction="CustomUI.Button_onAction" />
            <button
                id="LibraryMenu_Close"
                tag="Library"
                label="Close"
                imageMso="FileClose"
                getEnabled="CustomUI.Button_getEnabled"
                onAction="CustomUI.Button_onAction" />
            <button
                id="LibraryMenu_Default"
                tag="Library"
                label="Set as Default"
                imageMso="AcceptInvitation"
                getEnabled="CustomUI.Button_getEnabled"
                onAction="CustomUI.Button_onAction" />
            <menuSeparator
                id="LibraryMenu_Separator1" />
            <button
                id="LibraryMenu_Add"
                tag="Library"
                label="Add Component"
                getEnabled="CustomUI.Button_getEnabled"
                onAction="CustomUI.Button_onAction" />
            <button
                id="LibraryMenu_Editor"
                tag="Library"
                label="Edit Menu"
                getEnabled="CustomUI.Button_getEnabled"
                onAction="CustomUI.Button_onAction" />
          </menu>
          <dynamicMenu
              id="LibraryComponents"
              tag="Library"
              image="book_stack"
              getLabel="CustomUI.Menu_getLabel"
              getEnabled="CustomUI.Menu_getEnabled"
              getContent="CustomUI.Menu_getContent" />
        </group>
        <group
            id="Document"
            label="Document"
            tag="Document"
            centerVertically="true">
          <menu
              id="DocumentMenu"
              tag="Document"
              imageMso="FileOpen"
              getLabel="CustomUI.Menu_getLabel">
            <button
                id="DocumentMenu_Open"
                tag="Document"
                label="Open Document"
                imageMso="FileOpen"
                getEnabled="CustomUI.Button_getEnabled"
                onAction="CustomUI.Button_onAction" />
            <button
                id="DocumentMenu_New"
                tag="Document"
                label="New Document"
                imageMso="FileNew"
                getEnabled="CustomUI.Button_getEnabled"
                onAction="CustomUI.Button_onAction" />
            <menuSeparator
                id="DocumentMenu_Separator0" />
            <button
                id="DocumentMenu_Save"
                tag="Document"
                label="Save"
                imageMso="FileSave"
                getEnabled="CustomUI.Button_getEnabled"
                onAction="CustomUI.Button_onAction" />
            <button
                id="DocumentMenu_Close"
                tag="Document"
                label="Close"
                imageMso="FileClose"
                getEnabled="CustomUI.Button_getEnabled"
                onAction="CustomUI.Button_onAction" />
          </menu>
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

更新在玩了几个小时后试图弄清楚发生了什么,原来我的工作簿有些损坏了。如果我把它放到一个新的工作簿中,代码工作正常。

1 个答案:

答案 0 :(得分:0)

  1. centerVertically不是有效的属性。 请参阅此link

  2. getEnabled =&#34; CustomUI.Button_getEnabled&#34; &安培;的OnAction =&#34; CustomUI.Button_onAction&#34;
    在回调函数名称中避免使用 period。,因为我们无法定义像CustomUI.Button_getEnabled这样的子/函数。

  3. 3当对按钮使用getEnabled属性时,当应用程序需要确定按钮的启用状态时,将调用回调函数。

    sample code - getEnabled for ribbion