dynamic禁用自定义(VBA)Excel上下文菜单button?

情景

嗨,大家好,我正要使用此MSDN页面上的说明在我的Excel工作簿中添加一些自定义控件到单元格上下文菜单( 不是function区 )。 我遇到的唯一问题是我需要项目才能启用特定列/单元格的范围。

我环顾四周,我一直无法find任何步骤 – 有一些VSTO开发(用C#编写),但这不是我所需要的。 我打算使用内置于Office中的VBA IDE编写此代码,也可能使用自定义用户界面编辑器添加一些XML。


问题

所以基本上,我正在寻找一种方法来运行一个函数,在上下文菜单被调用(即,右键单击),validationselect,以确保它在适当的列。 如果不是,我想我的自定义button变灰。 注意:这可能无法完成一个validationfunction,我真的没有线索。 如果有更好的方法,请随时分享(我愿意提供build议)。


PS

请不要以为我要求你写我的代码。 创build这些button应该是非常简单的,因为我之前创build了很多(尽pipe它们都是Ribbon项目),我希望在这个特定的问题上寻求一些快速的帮助是可以的。

先谢谢你!

尝试这个:

Option Explicit Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Dim rclk As CommandBarControl If Target.Address(RowAbsolute:=False) = "$A1" Then Set rclk = Application.CommandBars("Cell").FindControl(Tag:="RightClickMenu1") With rclk .Enabled = False End With Else Set rclk = Application.CommandBars("Cell").FindControl(Tag:="RightClickMenu1") With rclk .Enabled = True End With End If End Sub 

在Workbook_Open()中创build“RightClickMenu1”,除此之外,代码是不言自明的。