Mat*_*loy 6 javascript excel vba excel-vba
我希望在Javascript中使用宏而不是默认的VBA来操纵excel电子表格.我可以使用以下VBA代码执行javascript代码
'javascript to execute
Dim b As String
b = "function meaningOfLife(a,b) {return 42;}"
'VBA tool to run it
Dim o As New ScriptControl
o.Language = "JScript"
o.AddCode b
MsgBox o.Run("meaningOfLife", 0, 1)
Run Code Online (Sandbox Code Playgroud)
这使我能够执行任意javascript,但是我无法从javascript环境中访问excel电子表格.有什么办法可以在javascript中设置并获取活动工作表中的工作表值吗?
对于使用Excel 2016或更高版本的用户,加载项存储中有一个名为Funfun的Excel加载项,实际上允许您直接在Excel中编写和运行JavaScript代码.当然,您的JavaScript代码也可以访问存储在电子表格中的数据.以下是Excel 2016中的外观截图.
在界面的中间你有一个部分,你可以在其中编写JavaScript,CSS和HTML代码.它非常像Excel内置的游乐场.但Funfun还有一个在线编辑器,您可以使用您的代码进行测试.你可以在下面的图片中看到它.我还在第一张图片中发布了该示例的链接,以便您可以使用.
https://www.funfun.io/1/#/edit/5a4e0d461010eb73fe125c4e
Funfun在线编辑器的特别之处在于它包含一个像Excel一样的"电子表格".虽然您实际上无法在此处进行任何格式化,但您可以将数据复制到单元格中并直接测试代码.
要使用存储在电子表格中的数据,您需要做的就是在Funfun的short.io文件中编写一些配置,告诉JavaScript电子表格中包含您数据的区域.例如,在我发布的示例中,您需要编写的所有内容都是
{
"data": "=A2:B9"
}
Run Code Online (Sandbox Code Playgroud)
在JavaScript代码中,一个名为$ internal的对象用于读取数据.因此,为了读取存储在A2:B9中的数据,您需要编写
var data = $internal.data;
Run Code Online (Sandbox Code Playgroud)
它完成了.如果您想了解更多信息,可以访问Funfu n 的文档.
如果您对在线编辑器中获得的结果感到满意,可以使用上面的URL轻松地将结果加载到Excel中.首先,您需要从插入 - 我的加载项插入 Funfun加载项.以下是一些截图,展示了如何做到这一点.
披露:我是Funfun的开发者
这取决于您想要进行哪种“Excel 编程”。
如果您想要操作 Excel文件,您可以使用在 Windows 脚本环境下运行的 JavaScript,通过 COM 自动化,甚至在某种程度上 ODBC 来实现。
但是,如果您想让代码在活动的 Excel 会话中运行,执行访问者将看到的操作,那么您的选择就更少了。
请参阅几年前我发布的这个问题,当时我想在 Excel 中运行一些 JavaScript,但没有预算转换为 VBA:
| 归档时间: |
|
| 查看次数: |
27564 次 |
| 最近记录: |