2009-01-30 89 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