2017-04-10 54 views
0

我對VBA很陌生並從頁面中提取數據。我設法通過「oIE.document.body.innerHTML」提取大量數據。然而,我遇到了一些可以在頁面上看到的數據不在這個innerHTML中的東西。我在檢查頁面上的確切位置時找到了它。在屏幕截圖下方。用VBA提取這種數據有可能嗎?我對標有藍色的數據感興趣,正是這個數字。試圖提取數據

Link to Code

預先感謝所有的答案或宣傳促銷活動。

好的。

我是從我公司的網頁與

   link = "Page" 

       oIE.navigate link 
       Do Until Not oIE.Busy And oIE.readyState = READYSTATE_COMPLETE: Loop 
       HTMLsource = UCase(oIE.document.body.innerHTML) 

提取數據,然後我用SPLIT函數來得到我需要的數據。 但是,在我最新的項目中,我遇到了網站上可見的數據,但不在我使用innerHTML方法獲得的字符串中。 innerHTML的方法後,我得到的字符串:

> <div id="mx_divTree"><div id="mx_divTreeHead"><table 
> id="treeHeadTable"><tr class="mx_hidden-row"><td id="ROW_1" 
> width="200"></td><td width="2"></td></tr><tr><th 
> id="Name"><table><tr><td height="25"><input 
> onclick="setCheckboxStatus(this)" name="chkList" class="small" 
> type="checkbox"></input></td><td id="Name" class="mx_sort-column"><a 
> href="javascript:sortTable(1)">Name</a></td><td 
> id="Name_sort"></td><td id="Name_filter"></td></tr></table></th><th 
> class="mx_sizer"></th></tr></table></div><div 
> id="mx_divTreeBody"><table><col class="mx_tree"></col></table> 

然而,當我檢查了頁面,「檢查元素」在Mozzila我發現上面的字符串丟失數據,我需要。但它在檢查元素中可見。

<table xmlns="http://www.w3.org/1999/xhtml" id="treeBodyTable" data-drag="Name" width="239"><tbody><tr class="mx_hidden-row"><td position="-1" width="1"></td><td id="ROW_1" width="238"></td></tr><tr id="0,0" o="20336.41905.55555.59004" r="" class="root-node 
        even 
       " style="height: 35px;" height="35"><td class="" position="-1"></td><td position="1" rownumber="1" rmbid="20336.41905.55555.59004" rmbrow="0,0" draggable="true"><div id="0,0" o="20336.41905.55555.59004" r="" t="" draggable="false"><table draggable="false"><tbody draggable="false"><tr id="0,0" o="20336.41905.55555.59004" r="" draggable="false"><td draggable="false"><input name="emxTableRowIdActual" class="small" id="rmbrow-0,0" value="|20336.41905.55555.59004||0,0" onclick="doFreezePaneCheckboxClick(this, event); doCheckSelectAll();" draggable="false" type="checkbox"></td><td id="icon_0,0" draggable="false"><a href="javascript:;" draggable="false"><img src="images/iconSmallPart.png" draggable="false"></a> 
            &nbsp; 
           </td><td title="80275509" position="1" rmbid="20336.41905.55555.59004" rmbrow="0,0" draggable="false" valign="middle"><a href="javascript:link(&quot;1&quot;,&quot;20336.41905.55555.59004&quot;,&quot;&quot;,&quot;&quot;,&quot;80275509&quot;)" data-oid="20336.41905.55555.59004" data-icon="images/iconSmallPart.png" class="object" draggable="false">80275509</a></td></tr></tbody></table></div></td></tr><tr id="0,1" o="20336.41905.60930.27530" r="" class="root-node 
        mx_altRow 
       " style="height: 35px;" height="35"><td class="" position="-1"></td><td position="1" rownumber="1" rmbid="20336.41905.60930.27530" rmbrow="0,1" draggable="true"><div id="0,1" o="20336.41905.60930.27530" r="" t="" draggable="false"><table draggable="false"><tbody draggable="false"><tr id="0,1" o="20336.41905.60930.27530" r="" draggable="false"><td draggable="false"><input name="emxTableRowIdActual" class="small" id="rmbrow-0,1" value="|20336.41905.60930.27530||0,1" onclick="doFreezePaneCheckboxClick(this, event); doCheckSelectAll();" draggable="false" type="checkbox"></td><td id="icon_0,1" draggable="false"><a href="javascript:;" draggable="false"><img src="images/iconSmallPart.png" draggable="false"></a> 
            &nbsp; 
           </td><td title="80275509" position="1" rmbid="20336.41905.60930.27530" rmbrow="0,1" draggable="false" valign="middle"><a href="javascript:link(&quot;1&quot;,&quot;20336.41905.60930.27530&quot;,&quot;&quot;,&quot;&quot;,&quot;80275509&quot;)" data-oid="20336.41905.60930.27530" data-icon="images/iconSmallPart.png" class="object" draggable="false">80275509</a></td></tr></tbody></table></div></td></tr><tr id="0,2" o="20336.41905.2564.37500" r="" class="root-node 
        even 
       " style="height: 33px;" height="33"><td class="" position="-1"></td><td position="1" rownumber="1" rmbid="20336.41905.2564.37500" rmbrow="0,2" draggable="true"><div id="0,2" o="20336.41905.2564.37500" r="" t="" draggable="false"><table draggable="false"><tbody draggable="false"><tr id="0,2" o="20336.41905.2564.37500" r="" draggable="false"><td draggable="false"><input name="emxTableRowIdActual" class="small" id="rmbrow-0,2" value="|20336.41905.2564.37500||0,2" onclick="doFreezePaneCheckboxClick(this, event); doCheckSelectAll();" draggable="false" type="checkbox"></td><td id="icon_0,2" draggable="false"><a href="javascript:;" draggable="false"><img src="images/fpc.gif" draggable="false"></a> 
            &nbsp; 
           </td><td title="80275509" position="1" rmbid="20336.41905.2564.37500" rmbrow="0,2" draggable="false" valign="middle"><a href="javascript:link(&quot;1&quot;,&quot;20336.41905.2564.37500&quot;,&quot;&quot;,&quot;&quot;,&quot;80275509&quot;)" data-oid="20336.41905.2564.37500" data-icon="images/fpc.gif" class="object" draggable="false">80275509</a></td></tr></tbody></table></div></td></tr></tbody></table> 

所以我的問題是:這是可能提取這個「隱藏」的數據與VBA?

+3

請顯示您之前嘗試/使用過的內容,並解釋爲什麼在這種情況下無法使用。還請包括HTML作爲文本,而不是圖片。 –

+0

請修改您的問題並在其中包含信息,從評論中瞭解代碼非常困難。 –

回答

0

你應該能夠看到這個..

Set elements = doc.getElementsByid("0,0") 
debug.Print = elements.innerHTML 

聲明elementsobject應該給你這個(是嗎?)

編輯(包括庫):

enter image description here

+0

我應該使用(「0,0」)作爲className還是應該放置別的東西?由於此方法不起作用,因爲我在嘗試打印時收到錯誤438。 – KamilG

+0

@KamilG我的錯誤 - 它應該是'getElementsByid' - 我已經更正了我的答案 – Jeremy

+0

Set elements = doc.getElementsByid(「0,0」) - 這一行給出了一個438錯誤。 – KamilG