如何通过 VBA 从 javascript 计算 vbscript 表达式

2024-03-20

最新的 MS Office 更新禁用了 vbscript,我在 Excel VBA 中使用它来计算表达式。我发现这比过去的 VBA“评估”功能要快得多,因此希望避免这样做。

Javascript 仍然可以工作,所以我正在尝试迁移到它。然而,我们的一些更复杂的表达式(使用幂或平方根)如果不重新编写表达式以使用 Math.Pow() 等,就无法工作。

所以我的问题是我是否可以运行一个计算 vbscript 表达式的 JavaScript。

我目前正在做的事情的例子如下:

Sub TestVBScript()
Dim objscript As New ScriptControl
Dim var As Variant
Dim str As String
objscript.Language = "vbscript"
str = "2+2"
var = objscript.Eval(str)
MsgBox str & " = " & var
End Sub

我想要的是计算 vbscript 表达式但使用 javascript 的东西,从而绕过 MS Office 错误。

如果有人感兴趣,这里是有关 MS Office 更新问题的信息。我认为对于很多人来说可能是一个大问题:https://social.msdn.microsoft.com/Forums/en-US/45c14333-3685-4b2d-9a3a-6a109a5a2a86/access-2016-microsoft-script-control-stopped-working-error-380?forum=accessdev https://social.msdn.microsoft.com/Forums/en-US/45c14333-3685-4b2d-9a3a-6a109a5a2a86/access-2016-microsoft-script-control-stopped-working-error-380?forum=accessdev

感谢您的帮助!


尝试这个解决方案:

Sub Test()

    MsgBox Eval("1+2+3^4")

End Sub

Function Eval(s As String)

    Static oDoc As Object

    If oDoc Is Nothing Then
        Set oDoc = CreateObject("htmlfile")
        oDoc.parentWindow.execScript "Function EvalExpr(s): EvalExpr = Eval(s): End Function", "vbscript"
    End If
    Eval = oDoc.parentWindow.EvalExpr(s)

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

如何通过 VBA 从 javascript 计算 vbscript 表达式 的相关文章