Нажатие кнопки JavaScript VBA - ошибка времени выполнения '424' - PullRequest
0 голосов
/ 18 декабря 2018

прежде всего позвольте мне извиниться, если это глупый вопрос, но я совершенно новичок в кодировании и застрял на этом, потянув меня за волосы уже пару дней ..

Я пытаюсьсделать некоторую автоматизацию для моего рабочего места, и в основном я застрял в попытке заставить VBA щелкнуть по кнопке js для меня и постоянно получать сообщение «Ошибка времени выполнения» 424: «Требуется объект» при попытке сделать это.

Код кнопки:

<a href="javascript:" id="WIN_0_304316340" arid="304316340" artype="Control" ardbn="z3Btn_ShowApplicationList" artcolor="null" class="btnflt  pointerCursor arfid304316340 ardbnz3Btn_ShowApplicationList" style="top:0px; left:0px; width:23px; height:140px;z-index:1209;" arwindowid="0"><div class="btnimgdiv" style="top:0px; left:0px; width:23px; height:140px;">

(или, по крайней мере, это то, что я нашел, используя опцию «осмотреть элемент», не уверен на 100%, если это то, как я должен это сделать, учитывая, что это js,как и во всех учебных пособиях, которые я обнаружил до сих пор, вместо этого использовались простые текстовые формы с довольно четкими идентификаторами ..)

, а код VBA, который я использую:

    Sub Test()


    Dim IE As Object
    Set IE = CreateObject("InternetExplorer.Application")

    IE.Visible = True
    IE.navigate "https://CensoredLink.com"

    Do While IE.Busy
        Application.Wait DateAdd("s", 1, Now)
    Loop


    IE.document.getElementById("WIN_0_304316340").Click


End Sub

.Я попытался использовать идентификатор «WIN_0_304316340» в этом примере, но также попытался использовать арид «304316340», так как не знаю, какой из них правильный (в обоих случаях получено одно и то же сообщение об ошибке)

когда я нажимаю отладку в редакторе, она подсвечиваетсяhts следующая строка:

IE.document.getElementById("WIN_0_304316340").Click

поэтому я также подумал, что, может быть, я просто что-то здесь не так сделал / не определил объект или что-то подобное?

Мое другое предположениебыло бы то, что, возможно, это как-то связано с тем, что страница загружается довольно медленно, в течение нескольких секунд, но я думаю, что часть кода

  Do While IE.Busy
    Application.Wait DateAdd("s", 1, Now)
Loop

должна предотвращать это ..

Любая помощьБуду очень признателен и еще раз извиняюсь за то, что ты такой нуб

...