VBA程序呼叫或引數不正確:1招解決commandtype = 0

VBA程序呼叫或引數不正確是常見錯誤,本文介紹直接錄製巨集可能無法執行爬蟲,如何用1個最簡單方法解決Comment Time=0問題,同時也會瞭解到程式註解的作用。

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

一、VBA錯誤

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

E17e10

二、CommandType屬性

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

E17e20

三、QueryTables.Add

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

E17e30

四、工具列編輯

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

E17e40

五、使程式行變為註解

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

E17e50

六、執行巨集

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

E17e60

七、下載網頁資料

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

E17e70

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


贊贊小屋VBA教學中心:

Excel巨集錄製教學Excel巨集程式VBA編輯器VBA自學入門VBA基礎語法VBA基本應用VBA UserFormVBA VLOOKUP

取得範例程式請前往VBA社團,訂閱請加入VBA Line社群

VBA課程推薦:零基礎入門進階的20小時完整內容

VBA課程:20小時完整入門進階,職場及投資應用

最新文章: