楼主 chrisfang |
RangeFromPoint函数可以获取某个坐标位置上的单元格或对象,如果配合API函数GetCursorPos,则可以获取鼠标所在位置的单元格或对象信息。此思路并非本人首创,Button和chijanzen等前辈都曾有过相关论述,在此仅对此方法进行进一步的整理总结和改进。 由于工作表和工作簿没有MouseMove事件,要想实时地获取鼠标移动后的位置信息,可以借用死循环或用计时器定时反复运行程序来扫描鼠标的移动事件,以牺牲系统资源为代价换取模拟的MouseMove事件。 图表对象具有Mouse事件,不需要借用死循环或计时器即可编写出可以根据鼠标位置获取图表内容信息的程序。 以下程序根据以上思路编写,点击开始按钮开启扫描状态后,鼠标所在位置的信息可以显示在A1、A2单元格中——如果鼠标所在位置为单元格,则A1、A2单元格分别显示鼠标所在单元格的行号和列号,如果鼠标所在位置为对象(如图形、图表、文本框、艺术字、控件等等),则在A1单元格中显示其名称。 方法1:使用Loop循环
鼠标位置new.rar |
2楼 chrisfang |
方法2:借用VBS的重复工作定时器setInterval,方法来源于chijanzen大侠: 需要在工作表中增加一个DHTML控件
鼠标位置2.rar |
3楼 chrisfang |
方法3:使用Ontime定时+循环,反复运行。 扫描间隔时间较长,需要鼠标停留片刻以后才能显示。
鼠标位置3.rar |
4楼 gvntw |
方兄API也学得这么好! |