2025年12月30日 星期二

VBA 資料分析教學:DAY 10

 VBA範例:銷售資料清理與總計

此範例自動清理Excel銷售資料空白行、計算B欄銷售總額,並顯示於D欄,適用於每月報表自動化。

Sub CleanAndSumSales()

    Dim ws As Worksheet

    Dim i As Long, lastRow As Long

    Set ws = ThisWorkbook.Sheets("RawData")

    

    ' 清理空白行(從下往上避免索引錯亂)

    For i = ws.UsedRange.Rows.Count To 1 Step -1

        If Application.WorksheetFunction.CountA(ws.Rows(i)) = 0 Then

            ws.Rows(i).Delete

        End If

    Next i

    

    ' 動態抓取最後一行並計算總和

    lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row

    ws.Range("D1").Value = "總銷售額"

    ws.Range("D2").Value = Application.WorksheetFunction.Sum(ws.Range("B2:B" & lastRow))

End Sub

執行前:


執行後:



執行前按Alt+F11開啟VBA編輯器,新建模組貼上程式碼,按F5執行。常見錯誤為工作表名稱拼錯,使用錯誤處理On Error Resume Next可避免中斷。​

VBA應用解說

此程式結合迴圈刪除空白與動態範圍計算,提升資料清理效率20倍以上,適合製造業生產數據預處理。

​變數宣告Dim與物件設定Set確保穩定性;End(xlUp)自動偵測最後資料行,避免硬編碼。搭配樞紐分析表自動化,可一鍵生成多維報表。

沒有留言:

張貼留言

職場毒癌:你憑什麼以為你十年寒窗,抵得我三代從商

你憑什麼以為你十年寒窗,抵得我三代從商——這句話已經記不得是從哪裡看到的,可能是某部劇,也可能是某篇 FB 文章標題。 但最近,特別有感。 為什麼會有這種感觸? 職場上有個同事,一路慢慢升到課長,好歹也是管理職,雖說不上鐵飯碗,但在多數人眼裡也算穩定。 結果呢?輾轉換了兩個製造課...