在关闭VBA Excel之前,CommandBars(“Ply”)不会在工作簿上重置

时间:2014-07-02 20:59:36

标签: excel vba excel-vba commandbar

我使用以下代码阻止用户右键单击Excel工作簿中的选项卡:

application.CommandBars("Ply").Enabled = false

在工作簿的beforeclose事件上,我正在调用另一个包含

的过程
application.CommandBars("Ply").Enabled = true

逐步调试帮助我理解命令实际上重新激活了活动工作簿的右键单击,但它不适用于其他工作簿/或应用程序。关闭后,如果我打开另一个没有任何保护的工作簿,则不会启用右键单击选项卡。

有没有人知道如何重新激活所有工作簿的右键单击?

2 个答案:

答案 0 :(得分:0)

您可以尝试使用 -

重置命令栏
Application.CommandBars("Ply").Reset

因此,如果我理解您正在尝试禁用某个工作簿的右键单击,那么在该工作簿中您应该使用 -

Application.ActiveWorkbook.CommandBars("Ply").Enabled = False

答案 1 :(得分:0)

如果目标是防止用户意外或以其他方式点击标签,最好的解决方案就是隐藏它们。这可以直接完成,也可以通过VBA使用

完成
Dim ws As Worksheet
Set ws = ActiveSheet ' Or whatever sheet you want
ws.Visible = false   ' and as needed during the execution, you may turn this to true