原書讓 Copilot 先列出手動把多張 chart 複製到 Dashboard 的步驟,再把這些步驟轉成 VBA;第二個 macro 則建立 Entity slicer 並同步到各 PivotTables/charts。
圖表來源工作表:Objects by World、Timeline China Russia USA、Column Chart China Russia USA、Pie Chart China Russia USA、Bar Chart China Russia USA。
| Macro | 核心任務 | 來源設定 |
|---|---|---|
CopyAllChartsToDashboard |
建立 Dashboard、複製每張表的第一個 chart、2 charts per row | Width=400、Height=250、間距約 420/270 |
AddEntitySlicerToDashboard |
建立 Entity slicer 並連到多個 PivotTables | Slicer 約 200×300,位置 20,20 |
第一個 macro 以 wsNames array 指定來源 worksheets,刪除舊 Dashboard 後重新建立,再迴圈 copy chart;第二個 macro 明確列出 PivotTable4/11/14/15/16,建立 Slicer_Entity 並逐一 AddPivotTable。
原書 Figure 10-11 顯示一張 Dashboard,包含複製的 charts 與同步 Entity slicer。巨集必須儲存為 .xlsm 才能執行。
這類 AI 產生 VBA 高度依賴 workbook 的實際 object names。若 PivotTable 名稱不同,程式碼會失敗。因此「看起來合理」不夠,執行前必須逐項核對名稱與權限。原書還指出啟用 macros 後 AutoSave/Copilot 工作流程受影響,示範完成後可移除 module、重新開檔再繼續使用 Copilot。
請先讀取並列出我的 worksheet、ChartObject、PivotTable 名稱,再根據實際名稱產生 Dashboard macro。不要假設 PivotTable4/11/14/15/16 一定存在。產生後逐行說明哪些名稱若不符會造成錯誤。