Excel 巨集

如果定期做同樣的報表,每次處理的資料來源都是固定的欄位,產生的報表格式也固定,除了使用函式之外,還可以搭配巨集來加速作業。

巨集的概念就像錄放影機,先錄後放,一開始先把操作過程作錄下來,之後每次重復操作時重播(執行)一次巨集,就會從頭到底依據之前錄下來的動作操作一次,不同的地方只有原料更換過了,巨集能發揮作用,是因為在錄製巨集的時侯,把操作的過程代換使用 vb 的語法成記錄下來。

舉例來說,有個函式表格,因為原始檔案很大,調來調去、貼來貼去、殺來殺去,處理過程很長,造成函式不見,臨床症狀是函式出現「#REF!」字樣,
出現錯誤訊息的欄位
這種現象是因為函式原本參照的資料有被殺掉過,遇到這種情形可以選擇抓出臭蟲,實務上通常沒有這等美國時間做,而且為了避免產生新的錯誤,通常選擇直接修復這個錯誤,這時侯可以用考慮利用巨集。

此例的目標就是每次出現這種錯誤訊息時加以修復,具體來說,就是把重新指定參照範圍的動作錄成巨集:
新增一個巨集

為巨集鋁名時記得用好記的名字,所謂的好記的名字,通常是可以表示巨集的功能,這是為了避免巨集一多,不知道要用那個,巨集名稱不能是數字開頭,所以重要的巨集可以用a開頭,執行時出現在列表的開端便於選用
命名巨集,加上描述以便日後判讀,有些人會用比較正規做法,寫上目的、輸入項目、變數、輸出項目等

平常手動操作做什麼事,在錄製巨集的時侯就做什麼事,此例把函式修正回來
用巨集把操作動作記錄下來

錄好了,結果也是原先預期的,告訴電腦一聲,按下[停止鍵],巨集就完成了(可是看不到)
停止錄製巨集

如果以後出現同樣的問題,把錄好的巨集叫出來[執行]
執行已經錄好的巨集

就能得到預期的結果 \(+o+)/
執行巨集的結果

注意:Office 2007 版之後,有巨集的檔案要存成 xlsm 的格式。

建議分段錄製,一來容易找出錯誤、修正錯誤(除錯)、重新錄製,二來在不熟悉 vb 語法的時侯方便觀察語法和其對應的行為,從中學習,增進熟練度。

增加巨集的彈性,資料通常是會小輻變動的,如果每次都是手動操作,在過程中可以很快即時反應,但是利用巨集處理資料時,必須考慮彈性,例如到巨集 vb 語法中把範圍加大,或是使用可以達成相同目的的不同函式;要增加巨集的彈性,除了熟練 Excel 的操作,還必須熟悉 vb 語法,要熟悉語法,多用,多觀察 vb 的行為,從分段錄製中學習,可惜這須要長期練習非一蹴可及。

踏入巨集的世界,享用好用的超級錄放影機吧。

留言

這個網誌中的熱門文章

使用 Excel 計算2個地點之間的直線距離

LINE 儲存的檔案傳到 email 不方便 很不方便 非常不方便 但是有解的筆記

合併列印標籤漏印