2009-01-30 90 views
0

我在ThisWorkbook模块中使用此vba代码以禁用Excel工作簿中的右键单击菜单。右键单击在Excel中禁用的图纸选项卡

Private Sub Workbook_Activate() 
    With Application.CommandBars.FindControl(ID:=847) 
     .Visible = False 
    End With 
End Sub 

Private Sub Workbook_Deactivate() 
    With Application.CommandBars.FindControl(ID:=847) 
     .Visible = True 
    End With 
End Sub 

工程就像一个魅力。
问题是,我无法访问任何工作簿中选项卡上的右键单击菜单。 代码的第二部分应该将它重新打开,我认为?但事实并非如此。

即使当我完全删除代码时,当我单击其中一个选项卡时,没有工作簿,甚至没有新工作簿,都有一个菜单。

是否有一个“重置”excel的一般vba codesnippet可能?或者一般的“启用所有菜单”的东西?

修订版: 此处发布的代码不会禁用右键菜单,它会从该特定菜单中删除“删除”选项。

回答

4

OMG

Application.CommandBars("Ply").Enabled = True 

-.-
开始最后的编辑和BAM后,谷歌搜索不同的关键词。

+0

好的,对你和我们都有好处! 现在,请将它标为正确的答案。 – jpinto3912 2009-02-16 13:44:49

2

像往常一样晚了,但今天解决了同样的问题。下面是解决方案,以获得您的右键单击功能:

Option Explicit 
' 
Sub tester() 
    ' 
    Dim cBar As CommandBar 
    ' 
    For Each cBar In CommandBars 
     Debug.Print cBar.Name 
     If (cBar.Type = msoBarTypePopup) Then cBar.Enabled = True 
    Next 
End Sub 
+0

这个宏为我节省了一天的时间。现在我只需要弄清楚什么是盗用右键单击功能! – Xcheque 2015-11-01 02:24:14

0

另请注意,下面也存在。一些来自工作的宏在Excel中禁用了它们。

Application.CommandBars("Cell").Enabled = True 
Application.CommandBars("Row").Enabled = True 
Application.CommandBars("Column").Enabled = True 
+0

欢迎来到Stack Overflow。感谢您的贡献,但这并没有真正回答这个问题。你可以在帮助页面找到建立好答案的建议[答案]。 – jerry 2014-01-15 22:00:02