ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 7323|回复: 30

[分享] 打造完美聚光灯

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-11-15 18:34 | 显示全部楼层 |阅读模式
       第一次知道聚光灯,是一个女孩子问我,能不能做一个聚光灯给她。我在网上搜了很多资料,最后基于条件格式,做了一个聚光灯,自认为做得还不错。可那位朋友拿去后,并没有用,觉得还是有些复杂。我后来问她怎么解决的,她说一个朋友给他下了一个插件,里面有聚光灯,简单易用。我当时听了,觉得有些遗憾。
      后来就想做一个插件,打造一个易用的聚光灯,但做了几天,发现搞不定,不得不放弃了。过了很长时间,我也看了一些别人做的聚光灯,突然有一天,灵光一闪,想到办法了。按照新的思路,我开始重新做聚光灯,发现总的思路可行,但技术细节还是很多,而且其它辅助的东西也得做好,比如安装程序,下载的网站。最开始我计划一个月做好(兼职做,每周就一天时间),最终把各方面都做好,大概等了两三个月(中间不是每周都在做,有耽误)。
      别人可能几天时间就做出来,而我花了很长时间,感觉有些愚笨。但还是很有成就感,自认为比其它的聚光灯要完美一些,有以下特点:
      1.不破坏Excel文件,不写入任何数据。
      2.支持Excel2013及以上版本,支持32位和64位。
      3.可以设置颜色和调整透明度。
      4.用户设置永久保存,不需要每次都开启聚光灯。如果上次没关闭,下次自动打开。
      5.性能很好,开启聚光灯后,Excel不会变慢。
      6.免费提供大家使用。

      我在Excel中增加一个选项卡"如意表格",聚光灯就在这个选项卡下,我专门做了一个网站用来下载聚光灯,欢迎大家使用和提建议:
      www.excelhelp.cn

     安装的时候请退出杀毒软件。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-11-15 21:44 | 显示全部楼层
感谢分享 谢谢

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-11-16 08:46 | 显示全部楼层

不客气,有什么意见和建议尽管提,我不断的改进,争取把它做成最好的聚光灯。另外,我后面想做打印方面的功能,比如Excel只支持打印表头,不能打印表尾,我想把这个支持上。如果大家有打印方面的需求,尽管提,可以在qq群中反馈:645061427

TA的精华主题

TA的得分主题

发表于 2020-11-16 09:30 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-11-18 21:18 | 显示全部楼层
那就提几点吧:
1、当Excel窗口显示比例不是100%时,存在定位误差。
2、当窗口冻结时,定位就不是误差了,而是完全偏离了,本来是选中的第4个窗格中的单元格,却把聚光灯显示在第一窗格上。
3、当窗口拆分时,如果第1窗格显示A1单元格,而第4窗格显示最大行、最大列的单元格,聚光灯就非常卡。从这一点,可以看出,你的这个聚光灯的定位计算方法,完全与我2018年初公开源码的导航灯的方法完全一致,当窗口缩放比例不是100%时,都是逐行逐列累加计算出来的,由于两个窗格的起始单元格一个是最左上的、一个是最右下的,位置相差巨大,必有一个需要读取百万行的行高进行计算累加,因为读取对象的属性是耗时动作,又因次数多达百万,计算量非常巨大,导致卡顿。你说看了别人的聚光灯之后“突然有一天,灵光一闪,想到办法了”,我不知道,这“灵光一闪”,是不是和我的导航灯有关呢?

不过,我的导航灯定位计算方法已经改进了,现在即使是在窗口拆分为4个窗格,且四个窗格都同时显示工作表最大行、最大列的单元格时,导航灯也是可以同时在4个窗格中精准瞬时计算并显示出“井”字形的形状了,而且, 这也仅是在VBA的解释型运行环境中就实现,不依赖C#这种需要编译后运行环境的优化。
当然,这种快速高效的定位计算方法,据我猜测,有几款插件的行列指示工具都是采用了的,如“百宝箱”的背景着色5.0(新的E灵在Excel2013推出后似乎放弃了这项功能)、“必备工具箱”、 "UUOffice"、 "xColorHighLight"、 "Excel DnaTools"。此外,有使用二分法推算定位的,其效率虽然比不上这种最快的方法,但比起用行高列宽逐一累加计算定位的方法,还是要高效了千百倍。

下面就录个动画,看看两者同时运行的效果吧。

导航灯与如意聚光灯对比.gif


评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-11-19 08:44 | 显示全部楼层
ggmmlol 发表于 2020-11-18 21:18
那就提几点吧:
1、当Excel窗口显示比例不是100%时,存在定位误差。
2、当窗口冻结时,定位就不是误差了 ...

非常感谢ggmmlol的反馈。
你提出来的两点确实都是问题,我会在后面改进。至于卡顿的问题,我没有测试过那么多的行数,所以没有意识到这个问题,我当时觉得比较难的地方是,缩放比例不是100%时,很难画得和下面的单元格刚好一致,容易存在误差,这个误差怎么消除我还没有想到解决办法。

我的“灵光一闪”是指我最开始总是局限于Excel的对象模型,想在单元格上去画一个东西,但查遍所有的API,都找不到有哪个API能实现这个功能。

后来我在用别人的聚光灯时,发现它们居然画到Exel的窗体外面去了,我一下明白了,它们不是画在Excel的窗体之中,而时在Excel之上显示了另外一个窗体,这一下打开了我的思路。我现在记不清最开始是开的哪一个聚光灯了,但应该目前所有的聚光灯都是这个思路,也想不出更好的思路,我也是站在前人的肩膀之上吧。

至于其它方面,基本都是我自己想的,也谈不上什么关键技术了,只是一些细节,需要花时间去琢磨。

非常感谢你的反馈,这个聚光灯我只是写着玩,后面我想做一些打印方面的功能,看有没有人感兴趣,欢迎
ggmmlol提意见和建议。

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-11-19 08:59 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
ggmmlol 发表于 2020-11-18 21:18
那就提几点吧:
1、当Excel窗口显示比例不是100%时,存在定位误差。
2、当窗口冻结时,定位就不是误差了 ...

看到了ggmmllol的大作:
http://club.excelhome.net/thread-1395812-1-1.html

向你致敬,如果能早看到你的大作,我会少走很多的弯路!

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-11-19 09:48 | 显示全部楼层
也许我应该向ggmmllol学习,把我是怎样做的聚光灯写出来,供后来的人参考

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-11-20 07:58 | 显示全部楼层
WPS  自带 会计金额大写聚光灯 功能。

可 它们都没有自带的 支票日期大写 功能  。。。。。   555
WPS聚光灯.png

TA的精华主题

TA的得分主题

发表于 2020-11-20 08:53 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
不要搞这个,不划算。但从某种角度来说对自己还是有很多好处的。
过程中可能会去研究windows编程、MouseHook、KeyboardHook、API Hook。但后来发现可能都不好用
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-24 12:06 , Processed in 0.057752 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表