Excel 宏与 Javascript

2024-05-14

我希望使用 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)

这使我能够执行任意 JavaScript,但是我无法从 JavaScript 环境中访问 Excel 电子表格。有什么方法可以在 javascript 中设置和获取活动工作表中的工作表值吗?


对于使用 Excel 2016 或更高版本的用户,有一个名为的 Excel 加载项Funfun https://www.funfun.io/1/msaddin在加载项商店中,实际上允许您直接在 Excel 中编写和运行 JavaScript 代码。当然,您的 JavaScript 代码还可以访问电子表格中存储的数据。这是 Excel 中的屏幕截图 2016年。

在界面的中间有一个部分,您可以在其中编写 JavaScript、CSS 和 HTML 代码。它很像 Excel 中内置的游乐场。但 Funfun 也有一个在线编辑器,您可以在其中测试您的代码。你可以在下图中看到它。我还在第一张图片中发布了示例的链接,以便您可以玩一下。

https://www.funfun.io/1/#/edit/5a4e0d461010eb73fe125c4e https://www.funfun.io/1/#/edit/5a4e0d461010eb73fe125c4e

Funfun在线编辑器的特别之处在于它包含一个像Excel一样的“电子表格”。尽管您实际上无法在此处进行任何格式化,但您可以将数据复制到单元格中并直接测试代码。

要使用电子表格中存储的数据,您所需要做的就是在电子表格中编写一些配置short.ioFunfun 文件告诉 JavaScript 电子表格中的哪个区域包含您的数据。例如,在我发布的示例中,您需要编写的是

{
    "data": "=A2:B9"
}

在 JavaScript 代码中,有一个名为$内部用于读取数据。因此,为了读取存储在 A2:B9 中的数据,您需要编写

var data = $internal.data;

完成了。你可以去Funfu 的文档 https://www.funfun.io/1/help如果您想了解更多。

如果您对在线编辑器中获得的结果感到满意,您可以使用上面的 URL 轻松地将结果加载到 Excel 中。当然,首先您需要插入 Funfun 插件插入 - 我的加载项。以下是一些屏幕截图,展示了如何执行此操作。

披露:我是 Funfun 的开发者

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Excel 宏与 Javascript 的相关文章

随机推荐