Excel2k7 / VBA:单击窗体button时获取单元格地址

我在多个单元格中有多个表单button,当点击其中任何一个时,我必须执行一个函数。 现在我需要知道哪个单元格有这个点击的button,以便我可以采取下一步。

提前致谢

当您处于devise模式(意味着您可以移动和调整button)时,您可以双击一个button,VBA编辑器将打开该button的Click事件的子例程。 如上所述,他们没有以任何方式链接到您碰巧拥有它们的单元格。

Dim r As Range Set r = ActiveSheet.Buttons(Application.Caller).TopLeftCell 

上面的代码会给你的button的单元格地址(这只适用于表单button不活动xbutton)。

由于某些原因,我不得不使用.Shapes(Application.Caller),因为.Buttons(Application.Caller)正在返回一个错误。

 Dim r As Range Set r = ActiveSheet.Shapes(Application.Caller).TopLeftCell 

表单控件不直接链接到工作表单元格。 他们可以“锚定”到他们的大小和alignment的目的,但据我所知没有任何与细胞的关系,可以让你得到一个单元格的参考,假设甚至可以毫不含糊地确定。

每个表单控件只能运行一个macros,所以很容易识别,不是吗?