VBA QueryTables.Add:1組錄製巨集修改的範例
VBA QueryTables.Add是最基本爬蟲方式,也是Excel很好用的工具,它可以用錄製巨集的方法產生程式碼,本文以簡單範例介紹可能會有的問題,說明如何適當修改順利執行。
一、錄製巨集取得程式
原先程式碼是錄製巨集自動生成的,對於「QueryTables.Add」設置諸多屬性,雖然較為完整,但其實就文章範例而言,並不是全部需要,所以如圖所示,20個屬性裡面,只要保留3個,其他可以刪除,有興趣讀者可試看看,執行結果和上一節完全相同。在這裡為了方便參考及以後利用方便,沒有真的刪除,而是利用「使程式行變為註解」指令,在批次在前面加個單引號,所保留屬性中,有2個跟取得網頁的形式和內容有關,有1個跟背景執行有關,詳細說明可參考本章第一節介紹。

二、網頁格式代碼
將「.WebFormatting = xlWebFormattingNone」變為註解,表示不僅匯入網頁資料、同時也要匯入網頁格式。

三、網頁格式對比
再次執行程式,如圖所示,上面是單純匯入資料、未匯入網頁格式的截圖、下面是同時匯入資料及格式的截圖。


四、網頁表格代碼
將「.WebSelectionType = xlEntirePage」變為註解,如此「WebSelectionType」的屬性值將回到預設值,亦即「xlAllTables」,表示取得網頁上所有表格,表格以外的資料不取得。

五、VBA參考文件
「WebSelectionType」在取得網頁資料較為關鍵,除了原本的「xlEntirePage」是網頁的全部資料、「xlAllTables」是網頁的全部表格,最後還有一個選項是「xlSpecifiedTables」,意思是取得某個特定的表格,這些選項涉及到瞭解網頁結構和取得資料目的,剛好中央銀行的網頁裡只有一個表格,而且剛好是範例真正希望取得的資料,所以設定「xlAllTables」即取可,在往後的章節,視情況需要進一步介紹其他選項。

六、VBA QueryTables.Add
VBA QueryTables.Add 是用來將CSV、TXT或外部資料直接匯入指定工作表儲存格的VBA方法,適合自動化報表與會計資料整理。它可設定分隔符號、編碼格式與載入方式,避免開新活頁簿,讓資料匯入流程穩定可控,是實務中處理系統匯出檔與大量資料更新的常用做法。
簡化後的VBA程式碼如下所示。這段 VBA 範例示範如何透過 QueryTables.Add,讓使用者自行指定網址來源與匯入位置,常用於網頁資料擷取、自動報表更新與系統資料同步。

七、銀行存款利率
再次執行程式,所取得的網頁資料變得很純粹,便是我們關心的五大銀行平均存款利率。

透過微軟開發人員中心資源學習VBA
Excel VBA程式碼較為複雜,本書以範例為基礎進行說明,因篇幅有限,無法完整介紹所有方法屬性的相關內容。讀者有興趣可以此書為方向,搭配微軟線上技援手冊,獲得較為全面的理解。例如以這一節範例關鍵的「WebSelectionType」屬性,只要在Google或奇摩、或者直接於透過微軟開發人員中心資源學習VBA搜尋「WebSelectionType」,不難找到相關文章。
贊贊小屋VBA教學中心:
Excel巨集執行、Excel巨集程式、Excel巨集程式碼、Excel VBA教學、VBA教學、Excel巨集範例、VBA UserForm、VBA VLOOKUP。
VBA課程推薦:零基礎入門進階的20小時完整內容
相關文章:

