Excel 2010禁用右键单击菜单

Excel 2010禁用右键单击菜单,excel,excel-2010,vba,Excel,Excel 2010,Vba,大家下午好 我试图限制右键单击菜单显示在excel工作表中。我已尝试使用以下代码: Private Sub Workbook_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) MsgBox "Sorry! Right click is disabled!" Cancel = True End Sub MsgBox "Sorry! Right click is disabled!" Can

大家下午好

我试图限制右键单击菜单显示在excel工作表中。我已尝试使用以下代码:

Private Sub Workbook_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    MsgBox "Sorry!  Right click is disabled!"
    Cancel = True
End Sub
MsgBox "Sorry!  Right click is disabled!"
Cancel = True
我是否错过了一些可以让这一切顺利进行的东西

谢谢

Ben

您可以使用以下代码:

Private Sub Workbook_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    MsgBox "Sorry!  Right click is disabled!"
    Cancel = True
End Sub
MsgBox "Sorry!  Right click is disabled!"
Cancel = True
但要指定工作表,您需要打开该工作表的代码模块,并在右键单击事件块之前将其放入工作表中,以便最终结果如下所示:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    MsgBox "Sorry!  Right click is disabled!"
    Cancel = True
End Sub
编辑: 请注意,特定工作表模块中的事件是“工作表右键单击前”事件,但工作簿模块中有“工作表右键单击前”事件。如果希望每个工作表都有工作表,则需要将工作表事件添加到每个所需的工作表中。如果要将其用于整个工作簿,则需要将工作簿事件放入工作簿模块中

对于工作簿模块,它应该如下所示(“Book1”项目中的ThisWorkbook是左窗格中选定的模块):

对于工作表模块,应如下所示(“Book1”项目中的“Sheet1(Sheet1)”是左窗格中选定的模块);

语法差异是关键。

您可以使用以下代码:

Private Sub Workbook_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    MsgBox "Sorry!  Right click is disabled!"
    Cancel = True
End Sub
MsgBox "Sorry!  Right click is disabled!"
Cancel = True
但要指定工作表,您需要打开该工作表的代码模块,并在右键单击事件块之前将其放入工作表中,以便最终结果如下所示:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    MsgBox "Sorry!  Right click is disabled!"
    Cancel = True
End Sub
编辑: 请注意,特定工作表模块中的事件是“工作表右键单击前”事件,但工作簿模块中有“工作表右键单击前”事件。如果希望每个工作表都有工作表,则需要将工作表事件添加到每个所需的工作表中。如果要将其用于整个工作簿,则需要将工作簿事件放入工作簿模块中

对于工作簿模块,它应该如下所示(“Book1”项目中的ThisWorkbook是左窗格中选定的模块):

对于工作表模块,应如下所示(“Book1”项目中的“Sheet1(Sheet1)”是左窗格中选定的模块);



语法差异是关键。

代码对我有效,您是否将宏安全设置为禁用宏?我的宏安全设置为启用所有。我把它卡错地方了吗。。。?我应该/可以把它放在特定的工作表下吗?或者这需要放在一个模块中吗?需要放在我放它的地方的ThisWorkbook模块中。我有另一个宏,它分别阻止ctrl-c/v/x进行复制、粘贴和剪切。它很好用。我不知道为什么这个事件让我如此头疼。你是否尝试删除它并重新添加?代码对我有效,你是否将宏安全设置为禁用宏?我的宏安全设置为启用所有。我把它卡错地方了吗。。。?我应该/可以把它放在特定的工作表下吗?或者这需要放在一个模块中吗?需要放在我放它的地方的ThisWorkbook模块中。我有另一个宏,它分别阻止ctrl-c/v/x进行复制、粘贴和剪切。它很好用。我不知道为什么这个事件让我如此头疼。你是否尝试过删除它并重新添加它?这不是我上面的代码吗?无论我把它放在哪里,在右键单击之前,我似乎仍然无法让它执行任何操作。请确认,当您尝试使用它时:打开代码编辑器(通过选择“开发人员”选项卡并单击“Visual Basic”或按ALT+F11),然后导航到左侧窗格中所需的工作簿,双击该工作簿中“Microsoft Excel对象”文件夹中所需的工作表,然后将此代码放在其中?使用工作表,然后将其放在单个工作表中,效果非常好!非常感谢。没问题-有时候只是需要稍微调整一下-这不是我上面的代码吗?无论我把它放在哪里,在右键单击之前,我似乎仍然无法让它执行任何操作。请确认,当您尝试使用它时:打开代码编辑器(通过选择“开发人员”选项卡并单击“Visual Basic”或按ALT+F11),然后导航到左侧窗格中所需的工作簿,双击该工作簿中“Microsoft Excel对象”文件夹中所需的工作表,然后将此代码放在其中?使用工作表,然后将其放在单个工作表中,效果非常好!非常感谢。没问题-有时候只是需要稍微调整一下