VBA Excel (Control HTML). Может ли кто-нибудь интерпретировать этот тег «a», чтобы выделить правильный код VBA CLICK? - PullRequest
0 голосов
/ 16 января 2020

Люди, озадаченные здесь, благодарны за любые указания относительно следующего. Попытка выбрать ссылку тега «a» через Excel VBA. Я никогда не видел такого рода ссылки, и мои попытки обойти их потерпели неудачу. Также не удается найти каких-либо связанных обсуждений по интерпретации события «a» тега «onclick» в этом коде html, в частности выделенных частей (представленных здесь на рисунке, поэтому я могу показывать только соответствующие части без форматирования). Выдержка из события onclick тега "a", которое я пытаюсь интерпретировать

Вот визуальное представление о том, как сайт представлен, и клик, который я пытаюсь кодировать в моем vba (" Camaro AAAAA ") Сайт визуальный. Стрелки указывают на ссылки, соответствующие коду (вверху выделены желтым цветом) соответственно. Представленный URL-адрес ("https://secure.fakesite.com/VehSel/select.jsp") остается неизменным после щелчка вручную.

I перепробовал несколько циклов для перемещения по тегам "a" либо без ответа, либо с ошибкой VBA (отказано в разрешении '70'). Я вполне уверен, что мои усилия ограничены тем фактом, что я не понимаю, что делает код, следующий за onclick, или как интерпретируется href = "#". Ниже приведены выдержки из циклов кода, которые я пытался:

Sub TestATagSelect()
Dim ie As New SHDocVw.InternetExplorer
Dim HTMLdoc As MSHTML.HTMLDocument
Dim eles As MSHTML.IHTMLElementCollection
Dim ele As MSHTML.IHTMLElement

ie.Visible = True
ie.navigate ("site added here")

Do While ie.readyState <> READYSTATE_COMPLETE
Loop

Set HTMLdoc = ie.document

'This didn't work (produced errors on set line)
    'Set eles = HTMLdoc.getElementsByTagName("a")
    'For Each ele In eles
    '    Debug.Print ele.innerText, ele.innerHTML
    'Next ele

'This produced an error 70 permission denied on debug.print
'but ran through the If statement with no response at all
  Dim link As Object
  For Each link In HTMLdoc.Links
      'Debug.Print link.innerText
      If link.innerText = "Camaro AAAAA" Then
          link.Click
          Exit For
      End If
  Next link

End Sub

Опять же, любые знания того, на что я обращаю внимание в этом выделенном коде или руководстве по кодированию vba для запуска события click, приветствуются. Заранее спасибо за ваше время и опыт.

...