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

1

Я не уверен, что у меня есть правильные термины выше, но то, что я пытаюсь сделать, это вызвать функцию 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 дает список поставщиков в следующем раскрывающемся списке, позволяя мне выбрать его. Затем я могу ввести следующий выбор в следующую функцию и выбрать третий вариант, но все это основано на первой функции, создающей второй выпадающий список. Первый список автозагружается на странице, но второй - нет, поэтому я не могу выбрать его. Может ли кто-нибудь помочь, пожалуйста? Спасибо.

  • 0
    Я думаю, нам понадобится немного больше информации о том, что вы пытаетесь сделать. Какую переменную вы передаете в FillVendorNames? Где находится файл Excel? Я никогда не видел Javascript, выполненный из VBA. Как настроена ваша система?
  • 0
    Привет, Деннис, на странице много кода, я не хочу раскрывать слишком много случаев, скажи мне, что не должен. Файл Excel находится в Моих Документах. Переменные, которые я передаю в FillVendorNames, взяты из файла Excel с помощью Cells (X, 2), чтобы выбрать подходящий вариант для отправки. Не уверены, на какую настройку вы ссылаетесь? (немного новичок в этом деле). Функция работает точно так, как и должна, если я ввожу «Mytext», используя только текст, но если я пытаюсь использовать переменную, она не работает.
Показать ещё 2 комментария
Теги:
function
variables
parameters

1 ответ

1
Лучший ответ

Две возможные проблемы:

  • 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
  • 0
    Спасибо Барроуц. Я использовал последний пример, который у вас есть выше, и он работает отлично. Спасибо за помощь

Ещё вопросы

Сообщество Overcoder
Наверх
Меню