標題:
[發問]
請問如何捉取網頁要輸入的TABLE到表格,謝謝
[打印本頁]
作者:
wufonna
時間:
2019-7-27 20:22
標題:
請問如何捉取網頁要輸入的TABLE到表格,謝謝
參考
http://forum.twbts.com/viewthread.php?tid=9511
請問那裏錯,如果Date要用 NOW()取1200天如何改,謝謝
Sub Ex()
Dim i As Integer, s As Integer, k As Integer, A, ii, j
Dim co_id As String, isnew As String, season As String
'第一季 01,第二季 02第三季 03,第四季 04.
With CreateObject("InternetExplorer.Application")
.Visible = True
.Navigate "https://www.cnyes.com/twstock/ps_historyprice/1216.htm"
Do While .Busy Or .ReadyState <> 4: DoEvents: Loop
With .document
For Each A In .getelementsbytagname("INPUT")
If A.Name = "ctl00$ContentPlaceHolder1$startText" Then A.Value = "2016/06/01"
Next
For Each A In .getelementsbytagname("INPUT")
If A.Name = "ctl00$ContentPlaceHolder1$endText" Then A.Value = "2019/07/27"
Next
For Each A In .getelementsbytagname("INPUT")
If Trim(A.Value) = "查詢" And A.Name = "ctl00$ContentPlaceHolder1$submitBut" Then A.Click '按下[查詢]鍵
Next
End With
On Error Resume Next '***有些table沒Rows資料會產生錯誤 不理會它,程式繼續走
Set A = .document.getelementsbytagname("table")(0).outerhtml
With ActiveSheet
.Cells.Clear
'************************
' For ii = 0 To A.Length - 1 '不知道table範圍在何處: 從0開始
'******************************
For ii = 11 To A.Length - 1 ''從11開始 用 Debug.Print ii 找出所要資料的table範圍
For i = 0 To A(ii).Rows.Length - 1 '寫入資料
'Debug.Print ii 可找出所要資料的 table 範圍
k = k + 1
For j = 0 To 5
Cells(k, j + 1) = A(ii).Rows(i).Cells(j).innerText
Next
Next
Next
End With
' .Quit '關閉網頁
End With
End Sub
'vba 操作ie匯入資料 'http://forum.twbts.com/viewthread.php?tid=9511
'如何在網頁搜尋結果後,再按限時間按鈕
'網頁登入-按鈕問題
'<div class="mbx bd3" enableviewstate="false">
'<h3 class="tabName"><span id="ctl00_ContentPlaceHolder1_titleLab">統一 歷史行情</span></h3>
'<div class="blank10" enableviewstate="false"></div>
'<span class="srchyear2" >
'開始日期<input name="ctl00$ContentPlaceHolder1$startText" type="text" value="2016/06/01" maxlength="10" id="ctl00_ContentPlaceHolder1_startText" style="width:72px;" />
'結束日期<input name="ctl00$ContentPlaceHolder1$endText" type="text" value="2019/07/27" maxlength="10" id="ctl00_ContentPlaceHolder1_endText" style="width:72px;" />
'<input type="submit" name="ctl00$ContentPlaceHolder1$submitBut" value="查詢" id="ctl00_ContentPlaceHolder1_submitBut" class="butn btnga" />
' <span style="float:right">
'</span>
'</span>
複製代碼
作者:
wufonna
時間:
2019-7-27 23:35
改這樣可行,但為什麼第二次執行會錯誤
Sub Ex()
Dim i As Integer, s As Integer, k As Integer, A, ii, j
Dim co_id As String, isnew As String, season As String
'第一季 01,第二季 02第三季 03,第四季 04.
With CreateObject("InternetExplorer.Application")
.Visible = True
.Navigate "https://www.cnyes.com/twstock/ps_historyprice/1216.htm"
Do While .Busy Or .ReadyState <> 4: DoEvents: Loop
With .document
For Each A In .getElementsByTagName("INPUT")
If A.Name = "ctl00$ContentPlaceHolder1$startText" Then A.Value = Format(Now - 1500, "yyyy/mm/dd") '"2016/06/01"
Next
For Each A In .getElementsByTagName("INPUT")
If A.Name = "ctl00$ContentPlaceHolder1$endText" Then A.Value = Format(Now, "yyyy/mm/dd") '"2019/07/27"
Next
For Each A In .getElementsByTagName("INPUT")
If Trim(A.Value) = "查詢" And A.Name = "ctl00$ContentPlaceHolder1$submitBut" Then A.Click '按下[查詢]鍵
Next
End With
' On Error Resume Next '***有些table沒Rows資料會產生錯誤 不理會它,程式繼續走
Do While .Busy Or .ReadyState <> 4: DoEvents: Loop
Set A = .document.getElementsByTagName("table")(0)
' On Error Resume Next
With ActiveSheet
.Cells.Clear
For i = 0 To A.Rows.Length - 1
For j = 0 To A.Rows(i).Cells.Length - 1
.Cells(i + 1, j + 1) = A.Rows(i).Cells(j).innerText
Debug.Print i
Next
Next
End With
.Quit '關閉網頁
End With
End Sub
'vba 操作ie匯入資料 'http://forum.twbts.com/viewthread.php?tid=9511
'如何在網頁搜尋結果後,再按限時間按鈕
'網頁登入-按鈕問題
'<div class="mbx bd3" enableviewstate="false">
'<h3 class="tabName"><span id="ctl00_ContentPlaceHolder1_titleLab">統一 歷史行情</span></h3>
'<div class="blank10" enableviewstate="false"></div>
'<span class="srchyear2" >
'開始日期<input name="ctl00$ContentPlaceHolder1$startText" type="text" value="2016/06/01" maxlength="10" id="ctl00_ContentPlaceHolder1_startText" style="width:72px;" />
'結束日期<input name="ctl00$ContentPlaceHolder1$endText" type="text" value="2019/07/27" maxlength="10" id="ctl00_ContentPlaceHolder1_endText" style="width:72px;" />
'<input type="submit" name="ctl00$ContentPlaceHolder1$submitBut" value="查詢" id="ctl00_ContentPlaceHolder1_submitBut" class="butn btnga" />
' <span style="float:right">
'</span>
'</span>
複製代碼
回復
1#
wufonna
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)