ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 在VBA中使用JAVASCRIPT和VBSCRIPT(1)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2010-7-19 15:08 | 显示全部楼层

哈哈

本帖已被收录到知识树中,索引项:脚本语言应用
大家好。很高兴见到大家。

[ 本帖最后由 byte001 于 2010-7-19 16:17 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-7-28 17:20 | 显示全部楼层
原帖由 figfig 于 2009-9-3 00:10 发表
javascript有许多函数和功能可以弥补VBA不足,如正则,数组,类,等等


1)以数组为例,用JAVASCRIPT排序


Sub fig8()
Set x = CreateObject("msscriptcontrol.scriptcontrol")
x.Language = "javascript"
...


这个教程牛,很多实用的功能。感谢figfig大师分享。

另请教:
1)以数组为例,用JAVASCRIPT排序
Sub fig8()
Set x = CreateObject("msscriptcontrol.scriptcontrol")
x.Language = "javascript"
arr = Array("aa", "cc", "bb", "1a")
kk = Join(arr, ",")
x.addcode "function aa(bb){x=bb.split(',');x.sort();return x;}"
cc = x.eval("aa('" & kk & "')")
MsgBox cc
End Sub

这是一维数组的排序,请问如何修改代码才能支持二维数组的排序?
象这样:
arr = [{"aa", "cc"; "bb", "1a";"cc","a2"}]
如何得到以数组第二列为关键字的排序?
这个非常难,不知道javascript支持不支持?
非常感谢

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-7-28 19:19 | 显示全部楼层

在本地窗口查看Y

Sub ruby()
'须安装ACTIVERUBY.才能运行
'下载地址  http://www.artonx.org/data/asr/ActiveRuby.msi


Set x = CreateObject("scriptcontrol")
x.Language = "rubyscript"
arr = [{"aa", "cc"; "bb", "1a";"cc","a2"}]
y = x.eval("def aa aa;bb=aa.sort_by{|x| x[1]};end")

y = x.Run("aa", arr)

Stop
End Sub

TA的精华主题

TA的得分主题

发表于 2010-7-28 19:43 | 显示全部楼层
原帖由 figfig 于 2010-7-28 19:19 发表
Sub ruby()
'须安装ACTIVERUBY.才能运行
'下载地址  http://www.artonx.org/data/asr/ActiveRuby.msi


Set x = CreateObject("scriptcontrol")
x.Language = "rubyscript"
arr = [{"aa", "cc"; "bb", "1a";" ...


多谢figfig大师指点,看来这个ACTIVERUBY的功能很强大,已经在论坛中看到很多大师用ACTIVERUBY回复的精彩案例。

不过还是要请教一下,不然有点不死心,呵呵,Javascript的sort是否也支持象这样的用法?
非常感谢。

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-7-28 20:02 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-7-30 23:49 | 显示全部楼层
原帖由 figfig 于 2010-7-28 20:02 发表
不行 js 好像不支持 vb数组


多谢指点,这样就不再去研究它了。

TA的精华主题

TA的得分主题

发表于 2010-9-28 00:05 | 显示全部楼层
偶尔见识了JAVASRIPT一维数组的强大处理能力,进来学习!
arr1.concat(arr2)  连接arr2 到 arr1末尾
arr.join(seperator)
arr.pop()  删除数组中的最后一个元素并返回该元素
arr.push ([data1,]) 将指定数据添加到数组中
arr.reverse() 反序排列数组中的元素
arr.shift() 删除数组中的第一个元素并返回该元素
arr.slice(start[,end]) 获取数组中的一部分数据
arr.sort 对数组中的元素排序
arr.splice 删除或替换数组中的部分数据
arr.unshift 在数组前面插入数据
arr.tostring 逗号联接

TA的精华主题

TA的得分主题

发表于 2011-6-29 12:00 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-10-15 10:58 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
好!好!好!
学!学!学!
顶!顶!顶!

TA的精华主题

TA的得分主题

发表于 2011-10-15 11:15 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-6-2 22:24 , Processed in 0.041320 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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