- 帖子
- 4
- 主題
- 1
- 精華
- 0
- 積分
- 11
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- office2007
- 閱讀權限
- 10
- 註冊時間
- 2012-5-16
- 最後登錄
- 2016-7-15
|
[發問] 已找到網頁中物件位置,卻無法click連結
本帖最後由 SorryChen 於 2012-5-17 14:52 編輯
如題,小弟嘗試編寫VBA以便自動抓取網頁上之表格。網頁之部分原始碼如下:-
- <tr>
- <td HEIGHT="23" colspan="7">
- <table border=0 height="15">
- <tr>
- <td HEIGHT="15" class="query" align="left"><p align="left">查詢個人資訊:</td>
- <td HEIGHT="15" ID="menu31" class="menu3"><a href="../PI80/PI800CICX.asp" target="_top">個人資料</a></td>
- <!-- <td HEIGHT="15" ID="menu31" class="menu3"><a href="http://******" target="_top">個人資料</a></td>-->
- <td HEIGHT="15" ID="menu32" class="menu3"><a href="../RE80/RE800CICX.asp" target="_top">******</a></td>
- <!-- <td HEIGHT="15" ID="menu32" class="menu3"><a href="******?value=13" target="_top">*******</a></td> -->
- <td HEIGHT="15" ID="menu33" class="menu3"><a href="EI80Page1.asp" target="_top">薪給資料</a></td>
- <!-- <td HEIGHT="15" ID="menu33" class="menu3"><a href="http://******?value=14" target="_top">薪給資料</a></td> -->
-
- <td HEIGHT="15" ID="menu34" class="menu3"><a href="EI0250.asp" target="_top">******</a></td>
- <!-- <td HEIGHT="15" ID="menu34" class="menu3"><a href="*****?value=17" target="_top">*****</a></td> -->
-
- <!-- <td HEIGHT="15" ID="menu35" class="menu3"><a href="EI0850Page1.asp" target="_top">密碼變更</a></td> -->
- <td HEIGHT="15" ID="menu36" class="menu3"><a href="../LT/LT7030.asp" target="bottom">假單查詢</a></td>
- <!-- <td HEIGHT="15" ID="menu35" class="menu3"><a HREF="../LT/LT1010_readsupp.asp?source=3&offclass=25&offIDName=455079&Sdate=101/5/17" target="bottom">補休時數查詢</a></td>-->
- <td HEIGHT="15" ID="menu35" class="menu3"><a HREF="../LT/LT0200dir.asp?source=qrysupp" target="bottom">補休時數查詢</a></td>
- </tr>
- </table>
- </td>
- </tr>
複製代碼
因該網頁為公司網頁必須在公司網域內並須帳號密碼才能登入,恕無法提供完整網址。
敝人由編輯器中的區域變數窗格找到欲點選的連結的物件(假單查詢)位置:
myIE3.document.frames(0)-->document-->all-->Item(76)
想利用程式碼尋找該物件卻會出現錯誤訊息:
執行階段錯誤'438' 物件不支援此屬性或方法
程式碼片段如下:- Dim myIE1 As InternetExplorer, myIE2 As InternetExplorer, myIE3 As InternetExplorer 'IE物件
- Dim myIEdoc1 As HTMLDocument, myIEdoc2 As HTMLDocument, myIEdoc3 As HTMLDocument '網頁物件
- Dim theForm As HTMLFormElement, theItm As HTMLFormElement '網頁表單物件
- Dim element As HTMLElementCollection '網頁物件集合
- Dim ItmType As String
- Dim theFrame As HTMLFrameElement
- Dim LinkHref As String
- Dim a, b, c, d, e, f, g
- Set myIE3 = CreateObject("InternetExplorer.Application")
- With myIE3
- .Visible = True
- .navigate "myURL"
- Do Until .readyState = 4
- DoEvents
- Loop
- End With
- Set myIEdoc3 = myIE3.document
- Set theFrame = myIEdoc3.frames(0)
- Set d = theFrame.document.all.Item(75)
- ' d.Click
複製代碼 因網頁會檢查一定要由此網頁點擊連結,否則會跳回首頁,
所以也無法新開啟一個IE物件navigate連結的網址,一定要用點擊方式。
請教各位先進前輩有無任何方法解決,
您的回答都對我有很大的幫助,謝謝 |
|