我不确定上面的术语是否正确,但我想做的是调用一个 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/