一、案例定位

原書以 ConvertToTable 巨集示範:錄製巨集雖然能快速自動化,但會把特定工作表的固定範圍記進 VBA,直接套到其他工作表可能失敗;ChatGPT 可協助泛化與除錯。

二、學習目標

三、案例情境

原始巨集把 Question 1 的 5 筆產品資料加標題,共 A1:B6,轉成 Table2 並把 Total Revenue 格式化為貨幣。當它套到更長的 Sales Trends 工作表時,只會轉換前 6 列。

四、開始資料

原始巨集要素 原書內容
固定範圍 A1:B6
固定表格名 Table2
貨幣欄 Table2[Total Revenue]
快捷鍵 Ctrl + Shift + T
儲存格式 .xlsm

五、Excel/R/AI 分析方法

先錄製巨集,再把 VBA 貼給 ChatGPT,要求:使用 ActiveSheet、把固定 A1:B6 改成全部非空白儲存格、不要固定 Table 名稱。ChatGPT 先產生 UsedRange 版本,但原書記錄了兩輪錯誤:先有語法錯誤,接著執行時出現 Compile error: Named argument not found。最後將建立表格一行改成位置參數:

ws.ListObjects.Add xlSrcRange, rng, , xlYes

才成功。

六、計算結果

版本 結果
錄製版 只處理固定 A1:B6,套到長工作表會漏掉第 7 列以後
第 1 次泛化 VBA Editor 顯示語法錯誤
第 2 次泛化 編譯錯誤:Named argument not found
最終修正版 UsedRange • 位置參數建立 ListObject,成功套用到 Sales Trends

七、結果分析與管理解讀

這個案例最重要的不是「ChatGPT 會寫 VBA」,而是原書清楚展示它會連續產生錯誤。可靠流程必須是:生成 → VBA Editor 檢查 → 實際執行 → 把錯誤訊息回傳 → 再測試。沒有執行過的程式碼不能視為完成品。

八、AI 提問詞