我想屏蔽一些命令栏选项,但我目前使用的方法有点过于严格。我目前使用此代码:
Sub Auto_Open()
Application.CommandBars.FindControl(ID:=847).Enabled = False
End Sub
Sub Auto_Close()
Application.CommandBars.FindControl(ID:=847).Enabled = True
End Sub
这样做的问题是,只要具有此代码的工作簿保持打开状态,就没有其他工作簿可以使用无效控件。我认为一个解决方案可能是使用:
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Application.CommandBars.FindControl(ID:=847).Enabled = False
End Sub
这将阻止用户在右键单击时使用我的无效控件,例如删除工作表。
我现在需要一种方法来在它们单击离开时立即删除这些空白,以便这些控件可用于它们可能打开的任何其他工作簿。是否有一个我可以使用的事件,它并不常见,它会使代码每 10 秒运行一次?我还想知道您是否可以使用 vba 中的延迟在前一段代码之后 5 秒运行一段代码?