javascript - 如何使用 Excel VBA 将变量参数传递到 Javascript 函数

标签 javascript vba function parameters variables

我不确定上面的术语是否正确,但我想做的是调用一个 Javascript 函数,将参数从 Excel 文件传递​​到其中,因此该函数将运行并列出下一个中的项目文本框,允许我在该文本框中选择正确的条目,然后选择最终的框。

这是我拥有的代码,如果我不将变量放入其中,它就可以工作: 调用 .Document.parentWindow.execScript("FillVendorNames('MyText')", "javascript") 如果我输入任何变量而不是“MyText”,则会出现运行时错误: 调用 .Document.parentWindow.execScript("FillVendorNames(cCode)", "javascript") 调用 .Document.parentWindow.execScript("FillVendorNames(.document.all.ComCode)", "javascript") 这些变量是在代码的前面声明的,我可以使用立即数窗口检查这些值是否正确,它们都是正确的,但我仍然收到运行时错误。

我想做的是使用现有的函数,根据原始下拉列表中选择的选项自动填充下拉列表。 如果我在第一个下拉列表中选择 MyText,则 FillVendorNames 会在下一个下拉列表中给出 vendor 列表,以便我进行选择。 然后,我可以在下一个函数中输入下一个选项,它会选择第三个选项,但这全部基于创建第二个下拉列表的第一个函数。 第一个列表会自动加载到页面上,但第二个列表不会自动加载,因此我无法从中选择选项。 有人可以帮忙吗? 谢谢。

最佳答案

两个可能的问题:

  • VBA 不会将变量名称替换为字符串中的值

示例:

Dim x as String
x = "Hello world!"

Msgbox x
// shows "Hello world!"

Msgbox "x"
// shows "x"
  • Call 不是必需的(因为您可以省略括号),并且可能会导致问题

示例:

Call Msgbox("x")
// is almost exactly the same as
Msgbox "x"

只需使用:

With foo
    // do stuff
    .Document.parentWindow.execScript "FillVendorNames(" & cCode & ")", "javascript"
    // do more stuff
End With

关于javascript - 如何使用 Excel VBA 将变量参数传递到 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1032858/

相关文章:

javascript - 区分日语汉字建议的 "Enter"按键和其他 "Enter"事件

javascript - Web Audio API 振荡器节点对象生命周期和 stop() 方法

javascript - 正确抑制数据表中的警告?

javascript - 使用 ajax 和 window.location 伪造 url 栏

Excel 组合框刷新下拉菜单?

excel - 直接值(value)转移,而不是在工作簿之间选择复制/粘贴

json - 从 MS Access 在 VBA 中解析 JSON (US BLS)

PHP将所有参数作为数组获取?

javascript - javascript中数组方法和join函数组合输出无法理解

javascript - 将此 JSON 重写为 jQuery data() 的更好方法是什么?