Excel巨集抓取網頁資料出錯了!進入VBA簡單修改,開始成為程式設計師




Excel有專門抓取網頁資料的指令,可以錄製巨集快速執行,但實際操作會跳出錯誤,其實只要進入Excel的VBA環境簡單修改即可,這是開始VBA程式設計的第一步。

上一節嘗試錄製巨集,執行時會提示錯誤而中斷,其實這並非結束,反而是一個開始,因為錄製巨集在這裡只是輔助工具,用意在於瞭解Excel命令相對應的程式碼,想操作Excel達到淋漓盡致的地步,仍然必須直接編寫VBA,這一節便正式開始介紹如何編寫VBA:

一、上一節錯誤提示視窗中,按下「說明」,即會超連結到「無效的程式呼叫或引數(錯誤5)」,這裡文字其實不容易對應到上一節巨集,但初步看來,就是程式裡面的參數設定有問題。

Excel巨集抓取網頁資料出錯了!進入VBA簡單修改,開始成為程式設計師 VBA網路爬蟲 第1張

二、巨集使用的是「QueryTables」這個命令,方法是「Add」,標黃色程式碼是其中參數之一:「CommandType=0」,所以在微軟Excel支援中找到「QueryTable.CommandType屬性」,看起來都跟網頁資料無關。

Excel巨集抓取網頁資料出錯了!進入VBA簡單修改,開始成為程式設計師 VBA網路爬蟲 第2張

三、再參考「QueryTables.Add」的說明,可見得「CommandType」並非必要的參數。

Excel巨集抓取網頁資料出錯了!進入VBA簡單修改,開始成為程式設計師 VBA網路爬蟲 第3張

四、於是解決方式很直接,要開始編輯VBA了,到上方命令列拉下「檢視」菜單,移到「工具列」將「編輯」勾選。

Excel巨集抓取網頁資料出錯了!進入VBA簡單修改,開始成為程式設計師 VBA網路爬蟲 第4張

五、先選取「CommandType=0」那一行程式碼的範圍,執行「編輯」工具箱裡的「使程式行變為註解」,VBA會將那一行程式碼前加個單引號,效果是把程式碼轉換成單純文字,不再是VBA程式,當然就不會是VBA執行中斷的錯誤碼。

Excel巨集抓取網頁資料出錯了!進入VBA簡單修改,開始成為程式設計師 VBA網路爬蟲 第5張

六、滑鼠移到上方功能區「開發人員」頁籤,「程式碼」區塊,點選「巨集」,在跳出來的視窗「執行」「DownloadWeb」。

Excel巨集抓取網頁資料出錯了!進入VBA簡單修改,開始成為程式設計師 VBA網路爬蟲 第6張

七、成功以VBA程式碼的方式下載網頁資料。

Excel巨集抓取網頁資料出錯了!進入VBA簡單修改,開始成為程式設計師 VBA網路爬蟲 第7張

從這一節範例來看,只是把巨集程式碼其中一行取消,原本無法執行的巨集,已經是可以執行的VBA代碼了。過程中有稍微瞭解相關程式說明,最後雖然達成效果,對於理論知識其實仍然懵慒懂懂。VBA是一門可深可淺的學問,這本書著重於實務上應用,以操作流程為主,像在這裡VBA本身有偵錯功能,只要能排除錯誤,順利往下執行,理論部份還是等到有需要再作研究。

本文內容取自《人人做得到的網路資料整理術》,最好學習方法仍然是書本,今天就買本書吧!

金石堂網路書店網址:https://www.kingstone.com.tw/basic/2014941521928




當前文章延伸閱讀:
VBA網路爬蟲