我一直在尝试从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
感谢您的帮助。
答案 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 ..."根据需要变得灰暗。通过这些控件的一些父母,我认为它应该禁用我没有想到的各种情况,比如右键单击整行/列而不是单元/范围 - 没有任何不良后果我能辨认出来。