你是不是也常常遇到需要根據一份 Excel 名單(像是學生名單、客戶清單),為每個人產生一份獨立的、帶有特定格式的 Excel 報表(例如成績單、通知單、對帳單)?
為什麼需要 VBA?傳統方法的限制
保留 Excel 的公式或格式設定:希望產生的檔案仍然是 Excel 檔,方便後續計算或編輯。 資料來源與範本都是 Excel:操作流程都在 Excel 環境內完成。
工具下載與準備
主程式檔 (含 VBA 腳本與範本): FillFile.xls 下載連結: https://drive.google.com/file/d/1Qoy3knDvq_1EetkHbyH_Y09W1HM8UFXx/view 這個檔案不僅包含了執行的按鈕和設定介面,也可以當作你合併列印的「範本」,你可以自行修改它的格式。
範例資料來源檔: score.xls 下載連結: https://drive.google.com/file/d/1L6cJVR4eP0Js5XVXsYRybLrrPyVq8Nvm/view 這是一個範例,裡面包含學生的成績明細資料,以及一個名為「個人用表」的工作表,用來存放要處理的學生學號清單。
操作步驟詳解 (以影片範例為例)
開啟資料來源檔 (: 先打開 score.xls 瞭解一下內容。你會看到主要的成績資料分布在一個工作表 (例如 "明細"),另外還有一個 「個人用表」 工作表。 這個「個人用表」很重要,裡面 A 欄存放的是我們要逐一處理的識別碼 (影片中是學號)。程式會根據這個清單來決定要產生哪些人的檔案。
複製識別碼清單: 切換到 score.xls 的「個人用表」工作表,將 A 欄所有需要處理的學號 (或其他識別碼) 複製起來。
開啟主程式檔 (: 關閉 score.xls。 開啟 FillFile.xls,記得啟用巨集。
貼上識別碼: 切換到 FillFile.xls 的 「合併欄位」 工作表。 將剛剛複製的學號清單,貼到 D 欄 (欄位名稱為 "檔名/識別碼")。程式會根據這裡的清單來產生檔案,並可能將這些識別碼作為檔名的一部分。
(可選) 檢查設定: 切換到 FillFile.xls 的 「設定」 工作表。 這裡可以設定一些參數,例如: 合併的檔案名稱 (預設 score.xls) 來源工作表名稱 (存放詳細資料的工作表) 合併的存檔位置 (預設與主程式同目錄) 是否要產生流水號檔名...等。
你可以根據你的實際檔名和需求進行調整。
執行合併: 確認資料來源檔 (score.xls) 已經關閉。 (這是必要的步驟,避免檔案被鎖定) 在「設定」工作表,找到並點擊 「合併Excel檔案」 按鈕。
等待完成與檢查結果: 程式會開始執行,根據「合併欄位」的清單,逐一讀取 score.xls 的資料,填入 FillFile.xls 的範本格式中,然後另存成新的 Excel 檔案。 完成後通常會跳出提示訊息。 回到你存放檔案的資料夾,你會看到產生了多個新的 Excel 檔案 (例如 score_1.xls, score_2.xls, score_3.xls ...)。 隨意打開幾個檢查看看,確認裡面的內容是否正確對應到該學號的資料。
重點提醒 & 應用場景
檔案路徑:請確保主程式檔和資料來源檔放在同一個資料夾。 關閉來源檔:執行合併前,務必關閉資料來源檔 (score.xls)。 啟用巨集:開啟主程式檔 (FillFile.xls) 時要啟用巨集。 自訂範本:你可以自由修改 FillFile.xls 的格式、欄位、甚至加入公式,讓它符合你的報表需求。合併時,程式會將這個修改後的格式作為範本。 識別碼欄位:資料來源檔 (score.xls) 中必須有一個清晰的欄位包含識別碼 (如學號、員工編號、客戶代碼),且「個人用表」裡也要有對應的清單。
學校:產生每位學生的個人成績單、在學證明。 公司:產生每位員工的薪資條 (需注意資訊安全)、客戶對帳單、產品報價單。 行政:發送個人化的活動通知單、會議邀請。
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。