VBA程序呼叫或引數不正確是常見錯誤,本文介紹直接錄製巨集可能無法執行爬蟲,如何用1個最簡單方法解決Comment Time=0問題,同時也會瞭解到程式註解的作用。
目錄
Toggle上一節嘗試錄製巨集,執行時會提示錯誤而中斷,其實這並非結束,反而是一個開始,因為錄製巨集在這裡只是輔助工具,用意在於瞭解Excel命令相對應的程式碼,想操作Excel達到淋漓盡致的地步,仍然必須直接編寫VBA,這一節便正式開始介紹如何編寫VBA:
一、VBA錯誤
上一節錯誤提示視窗中,按下「說明」,即會超連結到「無效的程式呼叫或引數(錯誤5)」,這裡文字其實不容易對應到上一節巨集,但初步看來,就是程式裡面的參數設定有問題。

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

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

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

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

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

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

從這一節範例來看,只是把巨集程式碼其中一行取消,原本無法執行的巨集,已經是可以執行的VBA代碼了。過程中有稍微瞭解相關程式說明,最後雖然達成效果,對於理論知識其實仍然懵慒懂懂。VBA是一門可深可淺的學問,這本書著重於實務上應用,以操作流程為主,像在這裡VBA本身有偵錯功能,只要能排除錯誤,順利往下執行,理論部份還是等到有需要再作研究。
贊贊小屋VBA教學中心:
Excel巨集錄製教學、Excel巨集程式、VBA編輯器、VBA自學入門、VBA基礎語法、VBA基本應用、VBA UserForm、VBA VLOOKUP。
取得範例程式請前往VBA社團,訂閱請加入VBA Line社群。
VBA課程推薦:零基礎入門進階的20小時完整內容