搜尋此網誌

2025年4月5日 星期六

Excel 學習心得 [2] _ 關於VBA

 前言

雖然已經2025年了,新版的Excel 都導入Python了

可是我還是會遇到需要VBA的場合,因此有了這篇文章

如果你的需求目標類似下列3種情況,你可能也需要用到VBA



  1. 自動化重複性任務與流程控制

    • 情境: 假設你有一個資料夾,裡面存放著數十個格式相同的 Excel 銷售報表檔案 (例如,每月一個檔案)。你需要將這些檔案中特定工作表 (例如 "Sheet1") 的特定範圍 (例如 A1:F100) 的資料,全部匯總到一個主工作簿的 "總表" 工作表中。

    • VBA 可以編寫程式碼來完成:
      • 瀏覽指定的資料夾,獲取所有 Excel 檔案的清單。
      • 使用迴圈 (Loop) 逐一打開每一個檔案。
      • 在每個檔案中選定特定的工作表和儲存格範圍。
      • 複製該範圍的資料。
      • 切換回主工作簿,找到 "總表" 工作表的下一個空白列。
      • 將複製的資料貼上。
      • 關閉剛剛處理完的檔案 (可選擇是否儲存變更)。
      • 重複此過程直到所有檔案處理完畢。
      • 甚至可以在過程中加入錯誤處理,例如跳過格式不符的檔案並記錄下來。
  2. 建立自訂使用者介面與互動

    • 情境: 你希望為使用者建立一個更友善的資料輸入介面,而不是讓他們直接在網格狀的儲存格中輸入。這個介面需要有下拉選單、日期選擇器、輸入驗證,以及一個 "儲存" 按鈕,按下後將表單中的資料寫入到工作表的特定位置。

    • VBA 可以編寫程式碼來完成
      • 設計和建立自訂的 UserForm,包含各種控制項 (文字方塊、標籤、下拉選單、清單方塊、選項按鈕、核取方塊、按鈕等)。
      • 編寫程式碼來控制這些控制項的行為,例如,根據一個下拉選單的選擇,動態改變另一個下拉選單的內容。
      • 為按鈕編寫事件處理程序 (Event Handlers),例如,當使用者點擊 "儲存" 按鈕時,讀取表單上所有欄位的內容,進行驗證,然後將資料寫入工作表的指定儲存格或資料表中。
      • 提供比內建資料驗證更複雜的即時檢查和使用者提示。
  3. 與其他應用程式或系統互動

    • 情境: 你需要根據 Excel 表格中的客戶資料,自動為每個客戶產生一份 Word 合約文件。

    • VBA 可以編寫程式碼來完成 

      • 建立和控制其他 Office 應用程式的物件。例如,可以打開 Word、建立新文件、將 Excel 中的資料填入 Word 文件的書籤 (Bookmarks) 或特定位置、然後儲存或列印 Word 文件。
      • 透過 ADO (ActiveX Data Objects) 連接資料庫,執行 SQL 查詢,將結果匯入 Excel,或將 Excel 資料更新回資料庫。
      • 操作檔案系統,例如建立資料夾、移動/複製/刪除檔案等。


沒有留言:

張貼留言

Excel 學習心得 [2] _ 關於VBA

 前言 雖然已經2025年了,新版的Excel 都導入Python了 可是我還是會遇到需要VBA的場合,因此有了這篇文章 如果你的需求目標類似下列3種情況,你可能也需要用到VBA