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

时间:2010-11-04 12:42:35

标签: excel vba mouse

有没有办法在Excel工作表(不在表单中)中获取鼠标下的对象。

原因是我有一堆图表和一些形状。当我单击特定图表上的形状时,将启动宏,对当前图表(ActiveChart)执行一些操作。但是,只有在单击形状之前激活图表时,此方法才有效。如果单击形状而不激活图表,则ActiveChart为Nothing。

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

Sheet and Book没有click或mousemove事件。在所有图表上设置一个我也遇到了与描述相同的问题。

我还没弄明白如何找出点击的形状(因为_Click宏没有任何参数)。 ë

感谢。

2 个答案:

答案 0 :(得分:2)

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

然后您可以在处理单击的宏中使用Application.Caller来获取形状名称。从那里,您可以解析图表名称。

蒂姆

答案 1 :(得分:0)

单击图表将激活其父表和书。所以你可以使用像     ActiveSheet.Charts(0) 如果每张纸只有1张图表。
要找出被点击的内容,您可以让调用者将其名称/ id作为参数(可能在此处不可用)或通过设置全局变量(不太好但在单个用户/单个进程上下文中可用)提供。