顯示具有 東吳大學 標籤的文章。 顯示所有文章
顯示具有 東吳大學 標籤的文章。 顯示所有文章

2022年1月31日 星期一

Excel VBA與資料庫雲端設計進階班119期,過年後開課囉

 Excel VBA與資料庫雲端設計進階班119期,過年後開課囉,

城中校區實體 / 線上直播互動教學同步進行,
也會提供上課錄影,保證學習。
2022-02-21 ~ 2022-04-25
週一 18:40~21:50
課程費用 原價 6,800


2021年5月22日 星期六

用EXCEL VBA網路爬蟲擷取YAHOO股市資料

用EXCEL VBA網路爬蟲擷取YAHOO股市資料


EXCEL錄製巨集爬取YAHOO股市資料,

會有亂碼的問題,用PYTHON來爬取,

對一般人來說門檻又太高,

如果如何在EXCEL VBA就可以輕鬆爬取網路資料,

就是本文所要分享的重點。

當然本文不是要推崇VBA有多棒,Python不好用,

我的想法是只要用對工具,工作可以很愜意,

可以協同應用工具,讓彼此都能發揮最大的強項,

是本文寫說明的,

另外順便分享在EXCEL除了用匯入資料從WEB功能外,

也可以用IE物件,

功能很像是Python的requests加上beautifulsoup4差不多功能,

不同的是,可以將下載的資料直接放在EXCEL,

也就是把EXCEL當成資料庫用,這樣可以減少很多資料庫匯入匯出的麻煩。


首先,YAHOO股市當日行情表網址:

https://tw.stock.yahoo.com/class-quote?sectorId=1&exchange=TAI


*改用IE物件下載


VBA程式碼

Sub 下載YAHOO_水泥()

    '清除資料

    Cells.Clear

    '1.建立IE物件

    Set ie = CreateObject("internetexplorer.application")

    '2.連線到網址

    ie.navigate "https://tw.stock.yahoo.com/class-quote?sectorId=1&exchange=TAI"

    '3.等待3秒

    Application.Wait (Now + TimeValue("0:00:5"))

    '4.取得網頁中第1個表格

    Set tbl = ie.document.getElementsByTagName("ul")(5)

    '5.取得表格中所有的列<tr>

    Set trs = tbl.getElementsByTagName("li")

'    '6.取得列中的每一個儲存格內文字<td>如果沒有<td>抓<th>

    For i = 0 To trs.Length - 1

        Set tds = trs(i).getElementsByTagName("div")

        For j = 5 To tds.Length - 1

            Cells(i + 1, j - 4) = tds(j).innertext

        Next

    Next

    Columns("C").Delete

    ie.Quit    

    Rows(1).Insert

    Range("A1") = "股票名稱": Range("B1") = "代號": Range("C1") = "股價"

    Range("D1") = "漲跌": Range("E1") = "漲跌幅(%)": Range("F1") = "開盤"

    Range("G1") = "昨收": Range("H1") = "最高": Range("I1") = "最低"

    Range("J1") = "成交量 (張)": Range("K1") = "時間"

    Columns.AutoFit

End Sub

教學影片分享:



教學論壇:



EXCEL VBA進階班的課程規劃

主要是延伸入門課,延伸資料庫、多工作表、工作簿、網路爬蟲、視覺化報表等應用並與Python程式協同應用
單元01_資料拆解相關(VBA)
單元02_輸入自動化與表單設計
單元03_用ADO匯入與匯出資料庫
單元04_大量工作表合併與分割
單元05_資料查詢(篩選與分割工作表)
單元06_下載網路資料(YAHOO股市)
單元07_活頁簿與檔案處理(工作表分割與合併活頁簿)
單元08_視覺化報表與快速匯入圖片

其他相關學習:
    函數東吳進修推廣部, EXCEL, EXCEL VBA 函數,程式設計,線上教學