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