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

yucheng1011 wrote:
我0123456789...試了一輪.還是不行.請問應怎麼修正它

Set Table = HTMLsourcecode.all.tags("table")(6).Rows


可能您剛好遇到網頁改版吧

2 => ok

yahoo 沒有到9,只到7(0~6)
debug.print HTMLsourcecode.all.tags("table").length
謝謝版大的回覆,

之前都很容易抓下資料,但昨晚突然不行了.
我試了Set Table = HTMLsourcecode.all.tags("table")(2).Rows中的參數,依然不行.

debug.print HTMLsourcecode.all.tags("table").length
出來的值是0

debug.print HTMLsourcecode.body.innerhtml
出來的也不盡然是頁面應有的東西

覺得很奇怪@@
yucheng1011 wrote:
debug.print HTMLsourcecode.body.innerhtml
出來的也不盡然是頁面應有的東西

覺得很奇怪@@


您的yahoo和我的yahoo有不一樣嗎?
請附檔案 or 程式碼…

yucheng1011 wrote:
您的yahoo和我的yahoo有不一樣嗎?
請附檔案 or 程式碼…


yahoo是一樣的
我的檔案是從一樓下載下來的檔案(有yahoo.有鉅亨).試了三台電腦都不行.連鉅亨都不行

我再把你上一樓的2412的例子重打了一次
一台電腦可以.一台電腦不行
偵錯也是停在
Set Table = HTMLsourcecode.all.tags("table")(2).Rows

所以我認為應該是我電腦弄了什麼相衝突,或excel版本VBA版本之類的問題.
yucheng1011 wrote:
我的檔案是從一樓下載下來的檔案(有yahoo.有鉅亨).試了三台電腦都不行.連鉅亨都不行


一樓? 2016/03
那個範例不能用是正常的…現在2021了,網站都不知道改版幾次了
請改從21樓開始看簡易教學…


yucheng1011 wrote:
我再把你上一樓的2412的例子重打了一次
一台電腦可以.一台電腦不行
偵錯也是停在
Set Table = HTMLsourcecode.all.tags("table")(2).Rows


2412那個,是21樓範例…
xp以上電腦,該範例不限excel版本,都可正常執行
(公司電腦除外,有些會用防火牆擋住,或使用者權限上有限制)

另外,部份xp電腦可能需要做tls修正,請參考440樓


(20210325 19:10補充:)
剛剛重新下載1樓yahoo範例測試,改("table")(2)後,可正常執行,其它程式碼不需修正
您可能沒有修正範例中的股票代號,有些下市(櫃)了,查不到資料,所以會停在("table")(2)
例如:第18、20列的,就不見了





該簡易範例,是以股票代號正確的前提下寫的,並沒有加入除錯功能,
請手動填入正確的股票代號後,再測試

如需除錯功能,我在其它範例裡有說明,請自行找找其它樓層
snare wrote:
剛剛重新下載1樓yahoo範例測試,改("table")(2)後,可正常執行,其它程式碼不需修正
您可能沒有修正範例中的股票代號,有些下市(櫃)了,查不到資料,所以會停在("table")(2)
例如:第18、20列的,就不見了


謝謝版大的回覆.以上這一點我也發現了.其他二台電腦可以順利運行了,他們是VBA7.0

但我還有一台電腦不行,它是VBA 7.1
在2412那個例子中(其他二台VBA7.0可以順利運行,debug.print HTMLsourcecode.body.innerhtml正常,是2412的頁面).

用debug.print URL,網址無誤,
但debug.print HTMLsourcecode.body.innerhtml
就是問題所在了.
跑出了一堆東西,不是2412頁面的東西.所以沒有表格讓它抓.就產生錯誤訊息了

跟版主報告一下,若有好的建議,再分享一下
謝謝版主
yucheng1011 wrote:
但我還有一台電腦不行,它是VBA 7.1


1樓yahoo舊範例,只改了股票代碼,table改成2,其它程式碼不變

snare wrote:
1樓yahoo舊範例,只改了股票代碼,table改成2,其它程式碼不變


我把office 重灌了.也降版本了,但問題依舊.


debug.print HTMLsourcecode.body.innerhtml
它為什麼會變了格式,我的另二台電腦是HTML格式,

但不行的這一台.他大部分都轉成json,所以找不到它要的table

部分截圖如下圖
yucheng1011 wrote:
但不行的這一台.他大部分都轉成json,所以找不到它要的table


https://tw.stock.yahoo.com/q/q?s=2412

yahoo這個網址回傳的就是html格式
您為什麼會變json??

也許是某些股票的資料…轉址到另一個網頁??
2412中華電也變成json??

還是您的windows有奇怪的設定?例如 proxy 、vpn、地區語言非中文…等等

或是改用這個試看看
CreateObject("WinHttp.WinHttpRequest.5.1")


不好意思,我無法重現出您的錯誤…
snare wrote:
https://tw(恕刪)

謝謝版大回覆,耽誤版大很時間,

我的電腦應該就是見鬼了,改用了
CreateObject("WinHttp.WinHttpRequest.5.1")
就可以部份運行了.之前就是卡在第一筆

但現在就是部份,每次按loading的%都不同.
17%.33%50%.67%或83%.
表示.它把html轉成jason也是偶發的
所以一直按..十來次會有一次全部都下載下來了@@

這是見鬼吧..去買乖乖好了
關閉廣告
文章分享
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 144)

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