我用
Set A = Application.CommandBars("Worksheet Menu Bar").Controls.Add(msoControlPopup)
Set B = Application.CommandBars("Cell").Controls.Add(msoControlPopup)
分别在菜单栏和右键弹出菜单创建了两个菜单但是,当我在Excel中选取图表的时候,两个菜单都不能显示了
怎么解决呢?

解决方案 »

  1.   

    Set B = Application.CommandBars("Cell").Controls.Add(msoControlPopup) 
    这个就是针对CELL添加的弹出菜单。对图表,要用图表的关键字,自己找一下。
    在菜单栏上的项目,最好别用同样的菜单对象,因为当判断当前对象不是CELL时,自动隐藏此弹出菜单时,也自然就导致菜单栏上的项目被隐藏了。所以应该用另外一个菜单对象(内容可以一致)。
      

  2.   

    如果使用图表相对应的关键字的话,那么在点击cell时就不能弹出菜单了.
    我想在选取Cell,Column和图表时都可以弹出这个菜单,怎么做呢?
      

  3.   

    (接上)
    如果按上面的那个方法写,我需要在Cell,Column,和Chart各创建一个菜单,很麻烦的(而且以后还要再重复创建相同的二级菜单,那就更麻烦了)
    有更更简便的做法么?
      

  4.   

    再问一下,我用
    Set B = Application.CommandBars("Cell").Controls.Add(msoControlPopup) 
    成功地增加了Cell上的右键菜单
    但是,用
    Set C = Application.CommandBars("Chart").Controls.Add(msoControlPopup)
    添加在图表上的右键菜单却不成功
    (运行后不报错,但是在图表上却没有右键菜单弹出来)
      

  5.   

    Set C = Application.CommandBars("Chart").Controls.Add(msoControlPopup) 
    这个我就不知道了,没有用过,无法解答。
      

  6.   

    **我是楼主**
    我知道
    "Worksheet Menu Bar"-->当选择单元格时,菜单显示在菜单栏
    "Chart Menu Bar"-->    当选择图表时,菜单显示在菜单栏
    "Cell"-->              当选择单元格时,菜单显示在右键菜单里但是,我想在选择图表时,菜单显示在右键菜单
    应该怎么做呢?
    (我试过"Chart"和"Charts"都不行) 
      

  7.   

    这时几乎所有的菜单条,自己从里面找找试试看:
    Attribute VB_Name = "mdlMenu"
    Option Explicit
    Public Sub MenuSwitch(onoff As Boolean)
      On Error GoTo ErrorHandler
      
      Application.CommandBars("Worksheet Menu Bar").Enabled = onoff
      Application.CommandBars("Chart Menu Bar").Enabled = onoff
      Application.CommandBars("Standard").Enabled = onoff
      Application.CommandBars("Formatting").Enabled = onoff
      Application.CommandBars("PivotTable").Enabled = onoff
      Application.CommandBars("Chart").Enabled = onoff
      Application.CommandBars("Reviewing").Enabled = onoff
      Application.CommandBars("Forms").Enabled = onoff
      Application.CommandBars("Stop Recording").Enabled = onoff
      Application.CommandBars("External Data").Enabled = onoff
      Application.CommandBars("Formula Auditing").Enabled = onoff
      Application.CommandBars("Full Screen").Enabled = onoff
      Application.CommandBars("Circular Reference").Enabled = onoff
      Application.CommandBars("Visual Basic").Enabled = onoff
      Application.CommandBars("Web").Enabled = onoff
      Application.CommandBars("Control Toolbox").Enabled = onoff
      Application.CommandBars("Exit Design Mode").Enabled = onoff
      Application.CommandBars("Refresh").Enabled = onoff
      Application.CommandBars("Watch Window").Enabled = onoff
      Application.CommandBars("PivotTable Field List").Enabled = onoff
      Application.CommandBars("Borders").Enabled = onoff
      Application.CommandBars("Protection").Enabled = onoff
      Application.CommandBars("Text To Speech").Enabled = onoff
      Application.CommandBars("List").Enabled = onoff
      Application.CommandBars("Compare Side by Side").Enabled = onoff
      Application.CommandBars("Drawing").Enabled = onoff
      Application.CommandBars("PivotChart Menu").Enabled = onoff
      Application.CommandBars("Workbook tabs").Enabled = onoff
      Application.CommandBars("Cell").Enabled = onoff
      Application.CommandBars("Column").Enabled = onoff
      Application.CommandBars("Row").Enabled = onoff
      Application.CommandBars("Cell").Enabled = onoff
      Application.CommandBars("Column").Enabled = onoff
      Application.CommandBars("Row").Enabled = onoff
      Application.CommandBars("Ply").Enabled = onoff
      Application.CommandBars("XLM Cell").Enabled = onoff
      Application.CommandBars("Document").Enabled = onoff
      Application.CommandBars("Desktop").Enabled = onoff
      Application.CommandBars("Nondefault Drag And Drop").Enabled = onoff
      Application.CommandBars("AutoFill").Enabled = onoff
      Application.CommandBars("Button").Enabled = onoff
      Application.CommandBars("Dialog").Enabled = onoff
      Application.CommandBars("Series").Enabled = onoff
      Application.CommandBars("Plot Area").Enabled = onoff
      Application.CommandBars("Floor and Walls").Enabled = onoff
      Application.CommandBars("Trendline").Enabled = onoff
      Application.CommandBars("Chart").Enabled = onoff
      Application.CommandBars("Format Data Series").Enabled = onoff
      Application.CommandBars("Format Axis").Enabled = onoff
      Application.CommandBars("Format Legend Entry").Enabled = onoff
      Application.CommandBars("Formula Bar").Enabled = onoff
      Application.CommandBars("PivotTable Context Menu").Enabled = onoff
      Application.CommandBars("Query").Enabled = onoff
      Application.CommandBars("Query Layout").Enabled = onoff
      Application.CommandBars("AutoCalculate").Enabled = onoff
      Application.CommandBars("Object/Plot").Enabled = onoff
      'Application.CommandBars("Title Bar(Charting)").Enabled = onoff
      Application.CommandBars("Layout").Enabled = onoff
      Application.CommandBars("Pivot Chart Popup").Enabled = onoff
      Application.CommandBars("Phonetic Information").Enabled = onoff
      Application.CommandBars("Auto Sum").Enabled = onoff
      Application.CommandBars("Paste Special Dropdown").Enabled = onoff
      Application.CommandBars("Find Format").Enabled = onoff
      Application.CommandBars("Replace Format").Enabled = onoff
      Application.CommandBars("List Range Popup").Enabled = onoff
      Application.CommandBars("List Range Layout Popup").Enabled = onoff
      Application.CommandBars("XML Range Popup").Enabled = onoff
      Application.CommandBars("List Range Layout Popup").Enabled = onoff
      Application.CommandBars("WordArt").Enabled = onoff
      Application.CommandBars("Picture").Enabled = onoff
      Application.CommandBars("Shadow Settings").Enabled = onoff
      Application.CommandBars("3-D Settings").Enabled = onoff
      Application.CommandBars("Drawing Canvas").Enabled = onoff
      Application.CommandBars("Organization Chart").Enabled = onoff
      Application.CommandBars("Diagram").Enabled = onoff
      Application.CommandBars("Ink Drawing And Writing").Enabled = onoff
      Application.CommandBars("Ink Annotations").Enabled = onoff
      Application.CommandBars("Borders").Enabled = onoff
      Application.CommandBars("Borders").Enabled = onoff
      Application.CommandBars("Draw Border").Enabled = onoff
      Application.CommandBars("Chart Type").Enabled = onoff
      Application.CommandBars("Pattern").Enabled = onoff
      Application.CommandBars("Font Color").Enabled = onoff
      Application.CommandBars("Fill Color").Enabled = onoff
      Application.CommandBars("Line Color").Enabled = onoff
      Application.CommandBars("Drawing and Writing Pens").Enabled = onoff
      Application.CommandBars("Annotation Pens").Enabled = onoff
      Application.CommandBars("Drawing and Writing Pens").Enabled = onoff
      Application.CommandBars("Annotation Pens").Enabled = onoff
      Application.CommandBars("Order").Enabled = onoff
      Application.CommandBars("Nudge").Enabled = onoff
      Application.CommandBars("Align or Distribute").Enabled = onoff
      Application.CommandBars("Rotate or Flip").Enabled = onoff
      Application.CommandBars("Lines").Enabled = onoff
      Application.CommandBars("Connectors").Enabled = onoff
      Application.CommandBars("AutoShapes").Enabled = onoff
      Application.CommandBars("Callouts").Enabled = onoff
      Application.CommandBars("Flowchart").Enabled = onoff
      Application.CommandBars("Block Arrows").Enabled = onoff
      Application.CommandBars("Stars & Banners").Enabled = onoff
      Application.CommandBars("Basic Shapes").Enabled = onoff
      Application.CommandBars("Insert Shape").Enabled = onoff
      Application.CommandBars("Shapes").Enabled = onoff
      Application.CommandBars("Inactive Chart").Enabled = onoff
      Application.CommandBars("Excel Control").Enabled = onoff
      Application.CommandBars("Curve").Enabled = onoff
      Application.CommandBars("Curve Node").Enabled = onoff
      Application.CommandBars("Curve Segment").Enabled = onoff
      Application.CommandBars("Pictures Context Menu").Enabled = onoff
      Application.CommandBars("OLE Object").Enabled = onoff
      Application.CommandBars("ActiveX Control").Enabled = onoff
      Application.CommandBars("WordArt Context Menu").Enabled = onoff
      Application.CommandBars("Rotate Mode").Enabled = onoff
      Application.CommandBars("Connector").Enabled = onoff
      Application.CommandBars("Script Anchor Popup").Enabled = onoff
      Application.CommandBars("Canvas Popup").Enabled = onoff
      Application.CommandBars("Organization Chart Popup").Enabled = onoff
      Application.CommandBars("Diagram").Enabled = onoff
      Application.CommandBars("Select").Enabled = onoff
      Application.CommandBars("Layout").Enabled = onoff
      Application.CommandBars("才腹").Enabled = onoff
      Application.CommandBars("Task Pane").Enabled = onoff
      Application.CommandBars("Add Command").Enabled = onoff
      Application.CommandBars("Built-in Menus").Enabled = onoff
      Application.CommandBars("Clipboard").Enabled = onoff
      Application.CommandBars("Envelope").Enabled = onoff
      Application.CommandBars("Online Meeting").Enabled = onoff
      Application.CommandBars("Microsoft Office Live Add-in").Enabled = onoffExitSub:
      Exit Sub
    ErrorHandler:
      MsgBox Err.Description
      Resume Next
    End Sub 
      

  8.   

    1 EXCEL 里面有N多个菜单,你必须手动把你的菜单项加到每一个菜单里去。永远别指望“仅在张三的脸上划一刀结果张三、李四、王五的脸上都出现刀伤”的事情发生,就算他们是三胞胎也不行。2 用 Application.CommandBars("Chart").Controls.Add(msoControlPopup) 添加菜单肯定是成功的,只不过你期望改变的那个菜单名字不叫“Chart”而已。有一个好办法可以帮你知道哪个菜单叫什么名字:Sub 为右键菜单订上门牌()
    On Error Resume Next
      Dim cb As CommandBar, t As CommandBarControl
      For Each cb In Application.CommandBars
        Set t = cb.Controls.Add(msoControlButton, , , 1, True)
        t.Caption = "[" & cb.Name & "]"
      Next
    End Sub