VBA for Excel,如何将.js文件加载为Jscript Scriptcontrol对象

我知道将js加载到VBA中有点傻,但我需要通过Google加载libphonenumber库来执行一大堆电话号码的分析。

我试着去适应从这里借用的下面的代码,但是编译后的库是要插入到VBA代码中的。

有没有办法从文件中加载.js库? 谢谢!

Function encodeURL(str As String) Dim ScriptEngine As ScriptControl Set ScriptEngine = New ScriptControl ScriptEngine.Language = "JScript" ScriptEngine.AddCode "function encode(str) {return encodeURIComponent(str);}" Dim encoded As String encoded = ScriptEngine.Run("encode", str) encodeURL = encoded End Function 

UPDATE。

这应该是一个工作代码,但由于某种原因不起作用:

 Function loabdjs(x As String) Dim fso As Scripting.FileSystemObject Set fso = New Scripting.FileSystemObject Dim script As String Dim fs As Scripting.TextStream ''' CODE : "function encode(str) {return encodeURIComponent(str);}" Set fs = fso.OpenTextFile("test.js", ForReading, False) MsgBox ("Never reached this point") script = fs.ReadAll fs.Close Dim ScriptEngine As ScriptControl Set ScriptEngine = New ScriptControl Dim output As String ScriptEngine.Language = "JScript" ScriptEngine.AddCode script output = ScriptEngine.Run("encode", x) loadjs = output End Function 

有任何想法吗?

从文件系统读取库到一个string:

 Dim fso As Scripting.FileSystemObject Set fso = New Scripting.FileSystemObject Dim fs As Scripting.TextStream Set fs = fso.OpenTextFile( "libphonenumber.js", ForReading, False ) Dim script As String script = fs.ReadAll fs.Close() scriptEngine.AddCode script