最怕週五下午的Excel需求

高效
來關注...
關注/停止關注:高效
關注有什麼好處?:當作者有新文章發佈時,「思書」就會自動通知您,讓您更容易與作者互動。
現在就加入《思書》,你就可以關注本作者了!
《思書》是一個每個人的寫作與論壇平台,特有的隱私管理,讓你寫作不再受限,討論更深入真實,而且免費。 趕快來試試!
還未加入《思書》? 現在就登錄! 已經加入《思書》── 登入
喜歡嘗試
16   0  
·
2024/12/02
·
4分鐘


最怕週五下午的EXCEL需求

每到週五下午,辦公室裡的氣氛總是變得緊張起來。小琳坐在電腦前,眉頭緊皺,眼睛盯著滿屏的 Excel 表格。她的手指快速地滑動滑鼠,忙著整理銷售數據並生成每個月的計算報表。
「怎麼樣?」鄰座的 Eric隨口問道。
「不怎麼樣啊,每週五下午都像打仗一樣。」小琳頭也不抬,繼續忙著手上的工作。她頓了頓,抱怨道:「這些數據得一筆筆加總,格式還要調整得一模一樣,光做完這些就得花掉一整個下午的時間。」
Eric聽了笑了笑,靠過來低聲說:「其實這些事情可以用自動化工具來做,你不用每週都這麼累。」
「自動化?」小琳疑惑地看著他,「是要寫程式那種嗎?我可不懂那些東西。」
Eric拍了拍她的肩膀說:「不用擔心,今天我就教你一個簡單的方法,讓你的報表在幾分鐘內搞定,保證不用加班!」

步驟一:錄製巨集,記錄重複操作
Eric坐到小琳的座位旁,開始一步步指導她。「首先,我們來錄製一個巨集,把你平時的操作步驟記錄下來。」
他點擊 Excel 的功能列:「檢視 → 巨集 → 錄製巨集」,並輸入一個名稱「自動月報表」,按下確定。
接下來,Eric示範如何完成小琳平時的操作步驟:

1. 格式/格式化為表格。
2. 選擇任一表格格式。
3. 表格設計/勾選合計列。
4. 銷售量欄位,按合計列的下拉式選單,選擇加總。
5. 金額欄位,按合計列的下拉式選單,選擇加總。
6. 銷售員欄位,按合計列的下拉式選單,選擇計數(資料筆數)。
最後,Eric停下來點擊「檢視 → 巨集 → 停止錄製」,他微笑著說:「好了,現在你的操作已經被記錄成巨集了。」

步驟二:檢查並修改巨集程式碼
「但巨集有時候不夠靈活,我們需要檢查一下程式碼。」Eric點擊「檢視 → 巨集 → 檢視巨集」,選擇剛剛錄製的「自動月報表」,並按下編輯,打開 VBA 編輯器。
小琳看到了一串程式碼:

Sub 自動月報表()
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$G$101"), , xlYes).Name = "表格1"
    Range("表格1[#All]").Select
    ActiveSheet.ListObjects("表格1").TableStyle = "TableStyleMedium9"
    ActiveSheet.ListObjects("表格1").ShowTotals = True
    Range("表格1[[#Totals],[銷售量]]").Select
    ActiveSheet.ListObjects("表格1").ListColumns("銷售量").TotalsCalculation = _
        xlTotalsCalculationSum
    Range("表格1[[#Totals],[金額]]").Select
    ActiveSheet.ListObjects("表格1").ListColumns("金額").TotalsCalculation = _
        xlTotalsCalculationSum
    Range("表格1[[#Totals],[銷售員]]").Select
    ActiveSheet.ListObjects("表格1").ListColumns("銷售員").TotalsCalculation = _
        xlTotalsCalculationCount
    ActiveWindow.ScrollColumn = 2
End Sub

Eric解釋道:「這段程式碼是自動生成的,像 Range("$A$1:$G$101") 是固定範圍,但如果你的數據筆數每個月都不同,就需要做些修改,讓範圍可以動態變化。」
接著,他在程式碼的開頭新增下列Excel VBA 語法:

lastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row

這是用來偵測 A 欄位最後一列的列號。

繼續調整下列程式碼:

ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$G$101"), , xlYes).Name = "表格1"
改為
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$G$" & lastRow), , xlYes).Name = "表格1"

「妳看,現在這段程式碼會自動偵測最後一筆資料的位置,不管數據有多少都能適用。」

步驟三:存檔與執行巨集
Eric提醒小琳:「巨集需要存成啟用巨集活頁簿(*.xlsm)格式,才能保留這些程式碼。」
存檔完成後,Eric指導小琳如何執行巨集:「下次只要同時開啟原始報表與有巨集的檔案,在原始報表中點擊檢視 → 巨集 → 執行自動月報表,就可以一鍵完成所有操作。」
小琳試了一遍,看到原本要花許久時間重複的工作在幾秒鐘內完成,驚喜地說:「天哪,這也太神奇了吧!」
當天,小琳早早收拾好桌子準時下班。臨走前,她笑著對 Eric 說:「謝謝你,這次真的救了我一命!以後遇到難題還要繼續麻煩你。」
Eric擺擺手,說:「別客氣,以後有空多學學 VBA,就不用總是找我幫忙了。」話音剛落,他又補了一句:「下次加班的咖啡我可就不幫你準備了!」
小琳笑著轉身離開,心中卻默默記下了這位「救援專家」的好意。

<更多倍增ExcelVBA自動化超能力技巧>


喜歡作者的文章嗎?馬上按「關注」,當作者發佈新文章時,思書™就會 email 通知您。

思書是公開的寫作平台,創新的多筆名寫作方式,能用不同的筆名探索不同的寫作內容,無限寫作創意,如果您喜歡寫作分享,一定要來試試! 《 加入思書》

思書™是自由寫作平台,本文為作者之個人意見。




分享這篇文章:
關於作者

討厭繁瑣與重複的工作




參與討論!
現在就加入《思書》,馬上參與討論!
《思書》是一個每個人的寫作與論壇平台,特有的隱私管理,用筆名來區隔你討論內容,讓你的討論更深入,而且免費。 趕快來試試!
還未加入《思書》? 現在就登錄! 已經加入《思書》── 登入


×
登入
申請帳號

需要幫助
關於思書

暗黑模式?
字體大小
成人內容未過濾
更改語言版本?