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