Как я могу передать переменные параметры в функцию Javascript, используя Excel VBA - PullRequest
1 голос
/ 23 июня 2009

Я не уверен, что у меня есть правильные термины, приведенные выше, но я пытаюсь вызвать функцию Javascript, передавая в нее параметры из файла Excel, поэтому функция будет работать и перечислять элементы в следующем текстовое поле, позволяющее мне выбрать правильную запись в этом текстовом поле, которое затем выбирает последнее поле.

Вот код, который у меня есть, который работает, если я не помещаю переменную в него: Call .Document.parentWindow.execScript("FillVendorNames('MyText')", "javascript") Если вместо «MyText» ввести какую-либо переменную, я получу ошибку во время выполнения: Call .Document.parentWindow.execScript("FillVendorNames(cCode)", "javascript") Call .Document.parentWindow.execScript("FillVendorNames(.document.all.ComCode)", "javascript") Переменные объявлены ранее в коде, и я могу проверить правильность значений с помощью окна немедленных действий, и все они верны, но я все еще получаю ошибку времени выполнения.

То, что я пытаюсь сделать, это использовать существующую функцию, которая автоматически заполняет раскрывающийся список, основываясь на параметре, выбранном в исходном раскрывающемся списке. Если я выберу MyText в первом выпадающем списке, то FillVendorNames выдаст список поставщиков в следующем выпадающем списке, что позволит мне выбрать его. Затем я могу ввести следующий выбор в следующей функции, и он выбирает третий вариант, но все это основано на первой функции, создающей второй выпадающий список. Первый список автоматически загружается на странице, а второй нет, поэтому я не могу выбрать один из вариантов. Может кто-нибудь помочь, пожалуйста? Спасибо.

1 Ответ

1 голос
/ 24 июня 2009

Два возможных вопроса:

  • 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...