(不定期更新)使用VBA解決 excel web 查詢無法匯入、匯入太慢的股市資料

https://tw.stock.yahoo.com/future/charts.html?sid=WTX%26&sname=%E5%8F%B0%E6%8C%87%E6%9C%9F%E8%BF%91%E4%B8%80&mid=01&type=1

https://tw.stock.yahoo.com/future/charts.html?sid=WTX%40&sname=%E5%8F%B0%E6%8C%87%E6%9C%9F%E8%BF%91%E4%BA%8C&mid=01&type=1

請問 可以抓這兩個網站 這些欄位資料嗎?
股票名稱 時間 成交 買進 賣出 漲跌 張數 昨收 開盤 最高 最低

麻煩各位大大協助 謝謝。
野比大雄1 wrote:
股票名稱 時間 成交 買進 賣出 漲跌 張數 昨收 開盤 最高 最低


資料分類、整理,請自行加油















[點擊下載]
snare wrote:
資料分類、整理,請自...(恕刪)


您好:
我想要這兩個網站圖片的這些資訊 因為我想要及時價格 謝謝您

https://tw.stock.yahoo.com/future/charts.html?sid=WTX%26&sname=%E5%8F%B0%E6%8C%87%E6%9C%9F%E8%BF%91%E4%B8%80&mid=01&type=1

https://tw.stock.yahoo.com/future/charts.html?sid=WTX%40&sname=%E5%8F%B0%E6%8C%87%E6%9C%9F%E8%BF%91%E4%BA%8C&mid=01&type=1

野比大雄1 wrote:
我想要這兩個網站圖片的這些資訊 因為我想要及時價格


那些資料,全部在json 的 mem 裡面,舉幾個例子,請看下圖
取出分類、整理,請自行練習







……
……
……

Set Mem = CallByName(DecodeJson, "mem", VbGet)

msgbox "開盤:" & callbyname(mem,"126",VbGet )

msgbox "漲幅:" & callbyname(mem,"185",VbGet )

msgbox "漲停:" & callbyname(mem,"132",VbGet )

msgbox "跌停:" & callbyname(mem,"133",VbGet )

msgbox "昨收:" & callbyname(mem,"129",VbGet )

……
……
……

想請教版上大神
在此網址下:https://5850web.moneydj.com/z/zg/zgb/zgb0.djhtm?a=6010&b=6010
會有二個下拉選項
我要怎麼才能將起填入a與b欄呢?謝謝

還有這個https://www.sinotrade.com.tw/richclub/search
可以整理成類似
snare
(我要怎麼才能將起填入a與b欄呢)=>我看不懂。至於另一個網站,我沒看到您說的資料。
snare wrote:
資料分類、整理,請自...(恕刪)

您好:
我的執行結果有問題,我是用365 64位元,請問這怎麼修正,我找了很多方法都不行,謝謝
snare
您自行輸入的程式碼中錯字太多,請回1332樓,下載檔案。
snare wrote:
那些資料,全部在json...(恕刪)


您好
已成功 謝謝您
大神 可否請您幫忙

原本想從 Goodinfo 抓所選股票收盤價
1.概念是先利用從Web獲取資料錄製巨集,抓取table,放置於sheet2



2.再來將錄製的巨集修改成可以自動去sheet 1 抓取股票代號,將我所要查詢的每支股票收盤價匯入sheet2
每次都會洗掉前一支股票的table , 並重新下載下一支 table




3.我再寫自動從抓取table中的收盤價至sheet 1 我指定的欄位中,只要我按一下按鈕,就可以每天update收盤價

因為沒有程式基礎所以用比較笨的方法,目前卡在不會將錄製的巨集股票代碼改成變數,然後弄了一整天的程式碼竟然沒存下來, 可否勞大神幫忙

https://goodinfo.tw/tw/StockDetail.asp?STOCK_ID=2317

若有更簡單的網站可以爬收盤價都可以, 感謝您
bigbirdbear wrote:
大神 可否請您幫忙原...(恕刪)


如果只要抓基本的股票數據,沒有程式基礎
乾脆用365支援的股票函數,直接取現成資料就好了

歷史數據,最後30天
=STOCKHISTORY("XTAI:2317",TODAY()-30,TODAY(),0,0,0,1)

如果要即時數據

先在一個欄位寫
XTAI:2317
然後按


這個範例
A366欄位會變成


成交價就是 A366.Price


剩下的欄位例如有
昨日收盤價 A366.[Previous close]
開盤價 A366.Open
剩下的自己去找

不過即時數據會晚20分鐘,歷史數據當天的要隔天大約十點左右才會出現,而且要檔案關掉再重新打開,或是自己去刷新數據,
這段時間差,我用即時價格補足最後一天的收盤價,搭配
=INT(A366.[Last trade time]) 可以取得即時數據的日期(格式要自己挑整)
再跟最後一天歷史數據日期做比對,計算出少的一個收盤數字應該是多少

不過比對方式有一點複雜,主要是要處理連續兩個交易日,中間有放假的話,怎麼利用即時數據裡的欄位去組合出正確缺少的日期數字。總不能放假卻自動產生一組根本不存在的數字吧。
加上歷史數據不會自動刷新,也不能用時間去判斷,就算是交易日十點多已經可以刷新歷史數據,再檔案關閉再打開時,程式跑的邏輯其實不會一樣。
這些設計細節我就不說明了,不過我已經成功補足且不會有錯誤
bigbirdbear
很感謝大神回覆 , 小弟再來試試看
bigbirdbear
多謝大神,google查詢 excel365 目前只能抓TSE 資料,OTC無法擷取
bigbirdbear wrote:
https://goodinfo.tw/tw/StockDetail.asp?STOCK_ID=2317

若有更簡單的網站可以爬收盤價都可以, 感謝您


goodinfo 有嚴格的流量限制,改用yahoo會比較好

收盤價,可參考1095
歷史報價,可參考271、272、274
(雖然是2017、2021年的舊範例,但剛才試過了,程式碼可正常執行)
bigbirdbear
有直接抓1095 F的excel可用,十份感謝
文章分享
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 157)

今日熱門文章 網友點擊推薦!