ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 名课 - Power BI数据分析与可视化实战 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
Python自动化办公应用大全 Excel 2021函数公式学习大典 Kutools for Office 套件发布 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: LIUZHU

[分享] JS与VBA写入单元格的速度比较,VBA略占优势

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-2-24 10:17 | 显示全部楼层
好贴,留个爪印

TA的精华主题

TA的得分主题

发表于 2022-2-24 13:43 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
只能说WPS 的js ,把数据写入单元格,较慢

TA的精华主题

TA的得分主题

发表于 2022-2-24 16:08 | 显示全部楼层
用ahk写了一下,好像wps写入更快。。。
脚本里的Excel改成Ket即可控制wps,不改是Excel
  1. xl := ComObjCreate("Ket.Application")
  2. ; Excel改为Ket就是控制wps
  3. xl.Visible := true
  4. wb := xl.Workbooks.Add()
  5. r := 10000
  6. c := 10
  7. a := ComObjArray(12, r, c)
  8. loop, % r {
  9.   i := A_Index-1
  10.   loop, % c {
  11.     j := A_Index-1
  12.     Random, tmp
  13.     a[i, j] := tmp
  14.   }
  15. }
  16. Sleep, 2000
  17. ; 睡2秒等待环境稳定下来
  18. t := A_TickCount
  19. xl.ActiveSheet.Range("A1").Resize(r, c).Value2 := a
  20. MsgBox, % A_TickCount - t
复制代码




test.zip

597.96 KB, 下载次数: 4

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-2-24 16:59 | 显示全部楼层
Kaohsing 发表于 2022-2-24 13:43
只能说WPS 的js ,把数据写入单元格,较慢

是这么个意思,毕竟WPS JS是新出来的东西,不像VBA,出来 很多年了

TA的精华主题

TA的得分主题

发表于 2022-2-24 18:32 来自手机 | 显示全部楼层
本帖最后由 wanghan519 于 2022-2-24 18:42 编辑
wanghan519 发表于 2022-2-24 16:08
用ahk写了一下,好像wps写入更快。。。
脚本里的Excel改成Ket即可控制wps,不改是Excel


附件里除了脚本是个64位的ahk,也可以自己下载。

结果是,wps启动慢,但写入这一步快一点,前面例子的慢可能是js的数组需要转换成comobject的safearray,多一步转换

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-2-24 20:14 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
wanghan519 发表于 2022-2-24 18:32
附件里除了脚本是个64位的ahk,也可以自己下载。

结果是,wps启动慢,但写入这一步快一点,前面例子 ...

AHK是什么一种编程语言吗?

TA的精华主题

TA的得分主题

发表于 2022-2-25 02:46 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
LIUZHU 发表于 2022-2-24 20:14
AHK是什么一种编程语言吗?

就是autohotkey而已,13楼有代码,就是通过comobject操作Excel或WPS,只是ahk会提供一些便利的方法

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-2-25 15:17 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
wanghan519 发表于 2022-2-25 02:46
就是autohotkey而已,13楼有代码,就是通过comobject操作Excel或WPS,只是ahk会提供一些便利的方法

这个ahk除了控制office之外,还可以控制其他软件么,比如控制钉钉自动发送消息,控制邮件客户端发送邮件?

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-2-25 15:18 | 显示全部楼层
zpy2 发表于 2022-2-24 08:48
关键就在于以下两句:
JS语句:Sh.Cells(1,1).Resize(arr3.length,arr3[0].length).Value2=arr3
VBA语 ...

是的,就是这句,不知道以后有没有优化的可能。

TA的精华主题

TA的得分主题

发表于 2022-2-25 15:39 来自手机 | 显示全部楼层
LIUZHU 发表于 2022-2-25 15:17
这个ahk除了控制office之外,还可以控制其他软件么,比如控制钉钉自动发送消息,控制邮件客户端发送邮件 ...

发邮件容易,但钉钉没试过。
比如微信只能用快捷键ctrl+f,输入人名,写要发的内容,回车这种不稳定的方式自动发。
但有些窗口可以用window spy定位到控件的,就比较方便了,随便控制着玩。
还有就是可以绑定窗口事件,每当激活特定窗口时执行,或是绑定Excel对象的事件也行。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-12-22 13:38 , Processed in 0.025687 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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