標題:
[發問]
如何用VBA控制上櫃個股成交網頁option 控制項
[打印本頁]
作者:
hsu5120
時間:
2015-2-10 23:44
標題:
如何用VBA控制上櫃個股成交網頁option 控制項
各大好:
想請教一下,如何使用VBA來控制上櫃個股成交網頁(http://www.otc.org.tw/web/stock/aftertrading/otc_quotes_no1430/stk_wn1430.php?l=zh-tw)
中 顯示 "全部"筆的 option 控制項,網頁中請選擇類股與資料日期的option 控制項,已經會使用VBA進行操控,可是顯示筆數資料的option 控制項好像
與Table 有 相關連,故看過網頁的原始碼不知如何使用VBA進行控制,請各位大大指教,謝謝!
[attach]20247[/attach]
Sub 盤後資訊_上櫃每日收盤行情()
Dim A As Object, xDate As Date, EDATE As Date
EDATE = Date
xDate = EDATE
'*************
'xDate = Date '正式常程式碼
With CreateObject("InternetExplorer.Application")
.Visible = True
.Navigate "http://www.otc.org.tw/web/stock/aftertrading/otc_quotes_no1430/stk_wn1430.php?l=zh-tw"
Do While .Busy Or .readyState <> 4: DoEvents: Loop
Ie_Refresh:
With .Document
'填入類股 option "所有證券(不含權證、牛熊證)"
.ALL("sect").Value = "EW"
.ALL("sect").onchange
Application.Wait Now + TimeValue("00:00:03")
'填入資料日期 option
.ALL("input_date").Value = Format(xDate, "E/MM/DD")
.ALL("input_date").onchange
Application.Wait Now + TimeValue("00:00:03")
'?????
'顯示 "全部"筆資料的 option VBA如何寫??
'?????
End With
Do While .Busy Or .readyState <> 4: DoEvents: Loop
If InStr(.Document.BODY.innerText, "查無資料") Then
.Quit
MsgBox Format(xDate, "E/MM/DD") & " 查無資料"
Exit Sub
End If
Set A = .Document.getElementsByTagName("table")
.Document.BODY.innerHTML = A(0).outerHTML '取"table"
Do While .Busy Or .readyState <> 4: DoEvents: Loop
.ExecWB 17, 2 ' Select All
.ExecWB 12, 2 ' Copy selection
.Quit '關閉網頁
With ActiveSheet '可指定工作表
.UsedRange.Clear
.Range("A1").Select
.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:=False, NOHTMLFormatting:=True
End With
End With
End Sub
複製代碼
作者:
joey0415
時間:
2015-2-11 19:02
回復
1#
hsu5120
抓這個
http://www.otc.org.tw/web/stock/aftertrading/otc_quotes_no1430/stk_wn1430_print.php?l=zh-tw&d=104/02/11&se=AL&s=14,desc,0
不然csv很也簡單
作者:
GBKEE
時間:
2015-2-13 17:10
回復
1#
hsu5120
With .Document
'填入類股 option "所有證券(不含權證、牛熊證)"
.all("sect").Value = "EW"
.all("sect").onchange
'填入資料日期 option
.all("input_date").Value = Format(xDate, "E/MM/DD")
.all("input_date").onchange
Application.Wait Now + TimeValue("00:00:03")
' 顯示 "全部"筆資料的 option VBA如何寫??
'顯示 ?? 資料: stk_wn1430_result_length option -1 = >"全部"
.all("stk_wn1430_result_length")(1).Value = -1
'.all("stk_wn1430_result_length")(1).Item(0).Selected = True '選第一個
.all("stk_wn1430_result_length")(1).fireEvent ("onchange")
Application.Wait Now + TimeValue("00:00:03")
End With
複製代碼
作者:
hsu5120
時間:
2015-2-14 12:11
謝謝大大提供的程式碼,剛測試可以正確執行且符合我的需求,
大大真是太厲害,謝謝!
還有joey0415 也感謝提供額外資訊供參考,謝謝!
:)
作者:
h2483116
時間:
2015-2-23 22:23
joey0415大大:
可否幫忙提供一下上市股票的網址,謝謝!
作者:
GOGOPOWER
時間:
2016-6-13 21:54
回復
3#
GBKEE
小第試run看看
發現可以執行在執行的過程發現網頁中的
顯示幾筆資料(全部,10,25,...)時,程式雖然會將網頁選項選為"全部"
但網頁卻沒有更新導致只有收到幾筆資料。
好像是這邊有些問題
.all("stk_wn1430_result_length")(1).fireEvent ("onchange")
作者:
c_c_lai
時間:
2016-6-14 08:48
回復
3#
GBKEE
[attach]24485[/attach]
[attach]24486[/attach]
的確如樓上大大所言,只改變了標示內容,
而未再次 RePlay All。
作者:
c_c_lai
時間:
2016-6-14 08:53
本帖最後由 c_c_lai 於 2016-6-14 08:59 編輯
回復
3#
GBKEE
如果顯示內容如有再次 RePlay,
亦即更動,畫面應為:
[attach]24487[/attach]
此類應用,與我所提問的 selectType 極為雷同。
股票資料匯入,程式執行有問題
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)