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

Привет, Деннис, приведенный ниже пример с Барроуком отлично работает. все равно спасибо за поиск. DOS
Привет, Деннис! На странице много кода, я не хочу раскрывать слишком много случаев, скажи мне, что не должен. Файл Excel находится в Моих Документах. Переменные, которые я передаю в FillVendorNames, берутся из файла Excel с помощью Cells (X, 2), чтобы выбрать подходящий вариант для отправки. Не уверены, на какую настройку вы ссылаетесь? (немного новичок в этом деле). Функция работает точно так же, как и должна, если я ввожу «Mytext». используя только текст, но если я попытаюсь использовать переменную, это не сработает. DOS
Хорошо, я думаю, что когда я вижу Javascript, я думаю, что вы работаете с веб-страницей. Это тот случай? Что делает функция Javascript? Размещается ли раскрывающийся список на веб-странице? CoderDennis
Я думаю, что нам понадобится немного больше информации о том, что вы пытаетесь сделать. Какую переменную вы передаете в FillVendorNames? Где находится файл Excel? Я никогда не видел Javascript, выполненный из VBA. Как настроена ваша система? CoderDennis

Ваш Ответ

1   ответ
1

VBA doesn't replace variable names with their values within strings

Пример:

Dim x as String
x = "Hello world!"

Msgbox x
// shows "Hello world!"

Msgbox "x"
// shows "x"
Call is never required (because you can just omit parentheses instead) and can cause problems

Пример:

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
Error: User Rate Limit Exceeded DOS

Похожие вопросы