EXCEL VBA终极提速,超级公式,算法优化

1,简化公式,200个字变成10个字

有很多公式写的很长,看不懂很难维护,如果改成VBA代码,简化成一个超级函数,方便维护,还可以给多个工程共用,实现模块化开发

2,计算提速。有些vba运算很慢,需要几分钟到几小时,用好的方法,运行速度可以减到1分钟以内甚至10秒以内。

这2天做了一个3万个左右的订单表和产品销售统计的算法。

原来的主人,运行后就卡死了,后面按10个产品去查找订单,需要1秒左右,那3万个产品就要3000秒,差不多一个小时才能完成。

后面采用了字典的方法代替每个单元格去循环对比,速度提高了100倍,只需要30秒左右。

再后来发现写入3万行2列数据也要10秒左右,采用变量绑定直接写入,只需要60毫秒。

经过终极优化,最终只需要200毫秒就完成了全部运算。

速度又提高了150倍,比最初的算法速度提高了1.5万倍。

如果还能采用多线程进行计算,估计还能提高不少。不过总体时间只有0.2秒了,没必要再折腾了。他的想法是30秒以内就很好了。

2.3万个数据转成字典Key,不引用Dictionary,用时:5281毫秒

引用的话只要39毫秒,快了135倍

写入6.3万个excel单元格用时=2304毫秒

直接用数组方式改变一批单元格只要57毫秒,快了39倍

vbnet 复制代码
2.86万个订单,查找的产品2.29万个
不用字典,纯循环查找用时17.3秒
字典生成39毫秒,查找用时85毫秒

================

V12-引用Dictionary 字典法强制声明最快

数据行数=28627,条件末行=22943

条件转字典用时:39毫秒

取产品+数量+金额 数据用时:16毫秒

提取所有数据用时=67毫秒
统计用时=85毫秒

写入单元格(超级法)用时=57毫秒

【借方V12】 >用时209毫秒,约0.003分钟


'v12不引用Dictionary 字典法,后期绑定,不声明从0.2秒变成了12秒

条件转字典用时:5281毫秒

取产品+数量+金额 数据用时:20毫秒

提取所有数据用时=5310毫秒

统计用时=6588毫秒

写入单元格(超级法)用时=59毫秒

借方V12 >用时11957毫秒

============== 纯数组方式循环几万*几万次的查找,用时17秒,最古老的方法,慢

条件转字典用时:0毫秒

取产品+数量+金额 数据用时:16毫秒

提取所有数据用时=29毫秒

统计用时=17252毫秒

写入单元格(超级法)用时=62毫秒

【借方V12】 >用时17343毫秒,约0.289分钟

相关推荐
reasonsummer19 小时前
【办公类110-05】20260807园园通小班“待补充”户籍地址自动修改(Python+EXCEL)
开发语言·python·excel
qq834431021 小时前
一款纯前端的excel控件,XuY_Sheet 电子表格组件教程
前端·excel·教程·luckysheet·xuy_sheet控件·前端表格控件
开开心心就好1 天前
免费压缩软件WinRAR无弹窗、广告干扰
java·开发语言·前端·数据库·python·excel·winrar
AI导出鸭2 天前
怎么让千问做表格?AI导出鸭苹果版将千问输出的管道表格智能解析为二维结构,一键导出为Excel或Word标准表格。
人工智能·chatgpt·word·excel·ai导出鸭
xiaopai9453 天前
工程项目管理系统选型:WPS/Excel为何难以替代专业系统的数据关联逻辑
excel·wps·项目管理系统·建米软件
灵析表格3 天前
Excel连接MySQL的函数化革命:灵析表格MySQL函数族业务应用分析
数据库·mysql·adb·excel·wps·灵析表格·excel公式盒子
许彰午3 天前
在PowerBuilder里手写Excel导出——OLE控制Excel的完整方案
excel
admin0054 天前
进销存软件与Excel的边界:什么时候该从Excel升级到专业软件
excel·企业管理·财务管理·进销存管理
灵析表格4 天前
json_ObjectToKV 函数深度研究报告
json·excel·wps·灵析表格·excel公式盒子
观远数据4 天前
Excel、自研、还是换BI?产品VP拆解三条数据分析路线的隐性成本
大数据·数据分析·excel