如何在右键单击弹出菜单中禁用/删除粘贴特殊选项?

时间:2016-08-08 14:58:30

标签: excel vba

我一直在尝试从Excel 2013右键单击弹出菜单中禁用或删除粘贴特殊选项,但我找不到方法。

我还从Excel文件中移除了“粘贴选项” - >选项 - >高级 - >切割复制和粘贴,但这对右键单击“粘贴选项”没有影响。

我也试过这个vba代码,但似乎控件ID已经改变了。

Sub DeactivateCollageSpecial()
  Dim Ctrl As Office.CommandBarControl
  For Each Ctrl In Application.CommandBars.FindControls(ID:=755)
   Ctrl.Enabled = False
Next Ctrl
End Sub

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我使用此代码列出了Paste Special控件的所有候选者:

Private Sub ListPasteControls()
    For Each Ctrl In Application.CommandBars.FindControls()
        If LCase(Ctrl.Caption) Like "*paste*" Then
            Debug.Print Ctrl.Caption & " - " & Ctrl.ID
        End If
    Next
End Sub

这给了我这个输出(重复删除):

&Paste - 6002
&Paste - 22
Paste &Special... - 21437
&Paste Table - 3624
Paste Li&nk - 1956
Paste &Special... - 755
Paste as &Hyperlink - 2787
&Paste... - 879

引导我访问ID 21437.当我尝试使用您的代码禁用这些控件时,上下文菜单版本为" Paste Special ..."根据需要变得灰暗。通过这些控件的一些父母,我认为它应该禁用我没有想到的各种情况,比如右键单击整行/列而不是单元/范围 - 没有任何不良后果我能辨认出来。