2016-08-17 2 views
2

Заранее благодарю вас за любую помощь, которая может быть предложена. Я пытаюсь активировать ссылку с Excel VBA, чтобы изменить представление данных, представленных на панели управления. Мне удалось выполнить логин и процесс навигации, и считаю, что скребковый элемент будет работать плавно после этого шага. Я не считаю, что я нацелен на правильные элементы или неправильно структурирую последовательность VBA.Excel Web Scraping - fireEvent on ul list item

Я пытаюсь вызвать «вид консультанта» в пределах ниже HTML:

<div style="width:100%; clear:both"> 
    <ul class="tab_menu clearfix" style="padding-top:5px;"> 
     <li id="site_ti" class="table_tab_item"> 
      <a href="#" onclick="update_table_tab('site'); return false;">By Site</a> 
     </li> 
     <li id="director_ti" class="table_tab_item"> 
      <a href="#" onclick="update_table_tab('director'); return false;">By Director</a> 
     </li> 
     <li id="team_lead_ti" class="table_tab_item"> 
      <a href="#" onclick="update_table_tab('team_lead'); return false;">By Team Manager</a> 
     </li> 
     <li id="consultant_ti" class="table_tab_item"> 
      <a href="#" onclick="update_table_tab('consultant'); return false;">By Consultant</a> 
     </li> 
    </ul> 

Я thusfar использовали следующие процедуры без результата:

Эти заявления в начале Public Sub:

Public Sub Huddle_Report_Scrape(ObjIE) 
Dim ie As SHDocVw.InternetExplorer 
Dim doc As MSHTML.HTMLDocument 'If you have a reference to the HTML Object Library 
Dim objShell, obj, objInputs, objButtons As Object 

Dim htmldoc As MSHTML.IHTMLDocument 'Document object 

Dim tbl As MSHTML.IHTMLElementCollection 
Dim eleColtr As MSHTML.IHTMLElementCollection 'Element collection for tr tags 
Dim eleColtd As MSHTML.IHTMLElementCollection 'Element collection for td tags 

Dim eleRow As MSHTML.IHTMLElement 'Row elements 
Dim eleCol As MSHTML.IHTMLElement 'Column elements 

Dim Table As MSHTML.HTMLTable 
Dim row As MSHTML.HTMLTableRow 
Dim cell As MSHTML.HTMLTableCell 
Dim col As MSHTML.HTMLTableCol  

Ниже приведена функция, которую я вызываю, чтобы вызвать вид консультанта.

Function FnConsultantView(ObjPage) 
With ObjPage 

Set li = .getElementByValue("consultant") 
    With li 
     .Focus 
     .FireEvent "onclick" 
    End With 
End With 
MsgBox ("Operation Completed") 

Я также попытался использовать элементы из следующего поста без особого везения: FireEvent and IE11

+0

'getElementByValue' - это что? Что происходит, когда вы запускаете этот код? –

+0

Попробуйте ObjPage.Document.getElementByID ("consultant_ti"). GetElementsByTagName ("a") (0) .Щелкните. Это должно щелкнуть элемент. –

+0

Это было использовано так же, как и getElementByID, и оно будет запускаться в приглашении Operation Completed, но не активирует вкладку. – Strategorm

ответ

0

Он работал с FireEvent.

Function FnConsultantView(ObjPage) 
With ObjPage .getElementById ("consultant_ti") .getElementsByTagName("a")(0).FireEvent ("onclick") 
End With MsgBox ("Operation Completed")