获取鼠标下的Excel工作表对象

有什么办法让Excel工作表中的鼠标下的对象(不是在窗体中)。

原因是我有一堆图表和一些形状。 当我点击特定图表上的形状时,macros启动,对当前图表(ActiveChart)做一些东西。 但是,只有在点击graphics之前激活图表才有效。 如果您在不激活图表的情况下单击形状,ActiveChart是Nothing。

所以,我需要一些方法来获取鼠标下的对象/图表/单元格。

工作表和书没有click或mousemove事件。 在所有图表上设置一个我也有同样的问题,如上所述。

我也没有弄清楚如何找出哪个形状被点击(因为_Clickmacros没有任何参数)。 Ë

谢谢。

您可以尝试使所有的形状名称都是唯一的,并在每个名称中包含图表名称。

然后,您可以使用Application.Caller在处理单击的macros中获取形状名称。 从这里,你可以parsing出图表名称。

蒂姆

点击图表将激活其父表和书。 所以你可以使用类似的东西
ActiveSheet.Charts(0)如果你只有1张图纸。
要找出被点击的内容,你可以让调用者提供它的名称/ id作为参数(这里可能不可用),或者通过设置一个全局variables(不是很好,但可以在单个用户/单个进程上下文中使用)。