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


snare wrote:
麥克連大師的Excel 8大指標 ...(恕刪)


版大上傳的
附加壓縮檔: 201802/mobile01-6c0ba794d7f92f092cb69ef800195e19.zip

我下載不下來也?
可以再上傳一次嗎? 感謝!!!
QuickSort wrote:
我下載不下來也?
可以再上傳一次嗎? 感謝!!!...(恕刪)


我試很正常

不過,我還是重新上傳一次了,您再試看看
如果再不行,請直接copy文章內的程式碼,自己做一個新檔案

snare wrote:
我試很正常
不過,我還是重新上傳一次了,您再試看看
如果再不行,請直接copy文章內的程式碼,自己做一個新檔案


可以正常下載了~~!
感謝您!
跟師父拜個晚年~~


謝謝師傅分享新招!!
(看來師傅最近有再買股票喔)

玩股網這招相當實用
請師傅原諒,小弟直接下載來用了..
(程式碼太複雜拉 哈!)

日期部分是只能抓一個月內的沒錯吧?
這樣不會到檔ip阿,才一個月
而且一次只下載一個股票

不知道師父說的超大量這句話是什麼意思??



bioleon69 wrote:
超大量這句話是什麼意思??...(恕刪)


像下面這樣
改寫306樓的程式碼,測試100筆,資料日期20180223


snare 大大你好

小弟想下載此網頁的 http://norway.twsthr.info/StockHolders.aspx?STOCK=2903 資料,
但是想抓取標籤的第10個table始終抓不到,只有抓到第1個("table")(1)有抓到資料,
另外用web下載方式是可以的,程式碼如下。
可以請大大幫忙解惑嗎,感謝你。
'''''''''''''''''''''''''''''''''使用XML下載'''''''''''''''''''''''''''''''''''''''''''''''''''
Set xml = CreateObject("MSXML2.XMLHTTP.6.0")

With xml
.Open "GET", norwayURL, False
.Send
End With
result = xml.Responsetex
msgbox result
Set html = CreateObject("htmlfile")
html.body[removed] = result

Set objTable = html.getElementsByTagName("table")(10).Rows ''無法抓取到第11個table,只抓到第1個有資料

ReDim TempArray(objTable.Length - 1, objTable(2).Cells.Length - 1)


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''使用web下載'''''''''''''''''''''''''''''''''''''''''''''''''''
Sub 巨集1()

With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://norway.twsthr.info/StockHolders.aspx?STOCK=2903", Destination:= _
Range("$C$3"))
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = """Details"""
.Refresh BackgroundQuery:=False
.Delete
End With

End Sub

''''''''''''''''''''''''''''''使用web下載結束'''''''''''''''''''''''''''''''''''''''''''''''''''


snare wrote:
像下面這樣改寫306...(恕刪)

請問一下關於這張圖表是怎麼產生的

我使用306樓只會出現單日券商買賣超
要怎麼使用成這樣的格式?
謝謝

peter624 wrote:
但是想抓取標籤的第10個table始終抓不到,只有抓到第1個("table")(1)有抓到資料...(恕刪)


試了一下資料全部在("table")(1)沒錯,抓(1),就可以了,我看不懂您要問什麼??

如果您要下載的,是跟web下載的一樣
可以用"303樓 get yahoo 副程式"修改一下就行





一、url 、 Referer url ,用同一個網址
二、Set table = HtmlSourceCode.all.tags("table")(1)
三、NoHTMLFormatting:=True ,想要改成false也行
四、自行處理排版問題

peter624 wrote:
Set objTable = html.getElementsByTagName("table")(10).Rows ''無法抓取到第11個table,只抓到第1個有資料
...(恕刪)

如果要用(10)的資料,因為資料格式不同,這樣寫會出錯

請參考21樓的範例


cbdg wrote:
請問一下關於這張圖表是怎麼產生的...(恕刪)



(點下可看大圖)

預設下載100筆,程式碼請自行輸入、修改


(20191207 需修正一行程式碼,才能正常執行)
Set Xmlhttp = CreateObject("WinHttp.WinHttpRequest.5.1")
改成
Set Xmlhttp = CreateObject("Msxml2.XMLHTTP")

object詳細功能,請參考695樓




(20210802 更新,程式碼send上方要加入一行程式碼,合計2行,請自行輸入)
.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
大大不好意思 讓你花時間幫我看
我知道原因了 網址的變數沒有代入值進去 難怪一直抓不到 感謝你。
關閉廣告
文章分享
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 144)

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