不必開啟EXCEL之下,自動化Excel資料計算

更新 發佈閱讀 12 分鐘

前言

今年五月發布的 ”EXCEL各欄位內容之合計算出”,當時使用的方法是須要開啟EXCEL檔案,利用函數讀取全部資料以便計算,若有6個項目需要計算,就需讀取 6次全部的資料,雖然可以完成6個計算項目處理,但處理效率較差。

今回新設計vbs程式,在不須開啟EXCEL 程式之下,可以讀取資料一次,就能完成數個項目的計算處理。

1.處理目的

設計Vbs程式,依據excel資料內容,自動計算出各項目數值,以增加處理速度,避免人為錯誤,提升工作效率,迅速掌握單位內業務推進狀況。

2.處理說明:

程式自動讀取excel檔案,自動計算,並將更新後excel儲存。

2.1 設計bat執行檔,指定欲處理的excel檔案路徑,以便vbs程式執行時,可以讀取excel資料

2.2 vbs程式執行時,一筆一筆讀取excel資料,處理各項計算公式,以便取得所需數值

2.3 資料逐筆讀取,以迴圈處理相同計算公式後,最後將更新的excel檔案,作實體檔案儲存動作

3.Bat 設計說明:

新設計bat執行檔,利用bat所設定之參數,指定excel檔案所在位置,以便vbs程式可以順利讀取excel檔案

4. 實例說明:

以某單位每月志工服務時數明細之excel資料檔為例,程式執行後,取得計算後合計數值,將其寫入excel檔內,並儲存excel檔案

4.1 讀取志工服務時數之檔案資料,其內容如下參考

志工服務時數明細之excel資料檔

志工服務時數明細之excel資料檔

4.2 vbs執行時,

*男女判斷條件,以身分證號之第二字元為依據,

1: 表男生; 2: 表女生

*6個 計算項目,如下

男志工服務人數

女志工服務人數

合計服務人數

男志工服務時數

女志工服務時數

合計服務時數

4.3 服務分鐘合計之特別處理

*服務分鐘須換算為時數,即服務 30分鐘,改為 0.5小時

*設計副程式Sub M2H_c(MF_f),以處理依據男女別,各別累計男女志工的服務時數

4.4 excel資料全部處理完後,將計算後的數值,依據本次讀取資料的月份,存放於excel內該當月份欄位。即讀取資料為 6月份,就自動存放在excel表單的 6月份欄位內,

若下月執行時,資料為 7月份,程式會自動存放在excel表單的 7月份欄位內

vbs程式實際執行後,產出結果,如下參考

本月程式執行後,寫入報表6月份欄位內,並於右上方記入更新月為11406

本月程式執行後,寫入報表6月份欄位內,並於右上方記入更新月為11406


5.bat設計如下 :

5.1 名稱: VHCal2.bat

5.2 內容:

WScript VHCal2.vbs "D:\lin_PC\EXCEL\志工時數\服務人數時數計算.xlsx"

5.3 bat執行方法

* 直接於bat存放路徑,按兩下執行bat

* 亦可於桌面新設bat捷徑圖示,於圖示按兩下執行bat,如下圖

raw-image

  • bat執行後,正常結束時,出現訊息如下
raw-image


6.vbs設計如下:

6.1 名稱: VHCal2.vbs

6.2 程式碼內容如下:

'REM--- 本xxx.vbs 儲存時,編碼方式,須為ANSI,否則msgbox 中文訊息會顯示亂碼  
'REM--- read excel sheet1 to do some cals, last to update(rewrite) excel sheet2
'Rem--- from bat arguments to get the path of this excel ---
if WScript.Arguments.Count < 1 Then
WScript.Echo"找無excel檔案! (Please specify the xlsx file path !)"
Wscript.Quit
End If

'REM--- get path of excel file from argumnt ---D:\lin_PC\EXCEL\志工時數\服務人數時數計算.xlsx
Set objFSO = CreateObject("Scripting.FileSystemObject")
excelP = objFSO.GetAbsolutePathName(Wscript.Arguments.Item(0))
set arg = WScript.arguments

Dim excelAPP ' as excel object
Dim wkBook ' as workbook
DIM sheetB,sheetR

'REM--- 首先建立 Excel 物件,使用ComObj:
Set excelAPP = CreateObject("Excel.Application")
excelAPP.Visible = false
Set wkBook = excelAPP.Workbooks.Open(excelP) 'REM--- 開啟已存在的工作簿excel file
Set sheetR = wkBook.workSheets(2)
Set sheetB = wkBook.workSheets(1)
'SET sheetB = wkBook.workSheets("志工基本資料")

MP_c = 0
MH_c = 0
FP_c = 0
FH_c = 0

sheetB.Activate 'REM-----設定為活動工作表
Crow = sheetB.UsedRange.Rows.Count
'Ccol = sheetB.UsedRange.columns.Count

For iLoop = 2 to Crow '---Read excel sheet row 從第row 2至最後row,就結束
Do '---當服務時&=0 跳走不執行

'IF Range("'G'&iLoop").Value = 0 And Range("'H'&iLoop").Value = 0 Then
IF sheetB.Cells(iLoop,7).Value = 0 And sheetB.Cells(iLoop,8).Value = 0 Then
Exit Do
END IF

Select Case MID(sheetB.Range("B"&iLoop).Value, 2, 1) '---判斷男女,各別累計時數
Case "1"
MP_c = MP_c + 1
MH_c = MH_c + sheetB.Range("G"&iLoop).Value

Case "2"
FP_c = FP_c + 1
FH_c = FH_c + sheetB.Range("G"&iLoop).Value
End Select

'---分鐘數累計處理
IF sheetB.Range("H"&iLoop).Value = 0 then
elseIF sheetB.Range("H"&iLoop).Value = 30 then
CALL M2H_c(MID(sheetB.Range("B"&iLoop).Value, 2, 1)) '---利用sub參數,以判斷男女
else
Msgbox "服務分鐘is not 30 , row="&iLoop
WScript.Echo "excel檔未更新,需修改後,再執行! (need to amend not 30 minutes)"
wkBook.Close False ' 關閉 excel 檔案 (close wkBook file)
excelAPP.Quit ' 結束 EXCEL APP
WScript.Quit ' 發現錯誤資料,結束程式

End IF
Loop While False

Next

sheetR.Range("J2").Value = LEFT(sheetB.Range("C2").Value,5) '顯示本次處理月份

sheetR.Cells(MID(sheetB.Range("C2").Value, 4, 2)+5,3).Value = MP_c '顯示row位置 = 月份+ 5
sheetR.Cells(MID(sheetB.Range("C2").Value, 4, 2)+5,4).Value = FP_c
sheetR.Cells(MID(sheetB.Range("C2").Value, 4, 2)+5,5).Value = MP_c + FP_c
sheetR.Cells(MID(sheetB.Range("C2").Value, 4, 2)+5,6).Value = MH_c
sheetR.Cells(MID(sheetB.Range("C2").Value, 4, 2)+5,7).Value = FH_c
sheetR.Cells(MID(sheetB.Range("C2").Value, 4, 2)+5,8).Value = MH_c + FH_c

'REM-----設定sheetR 為活動工作表
sheetR.Activate
wkBook.Save ' wkBook file rewrite;xlsx file need exist already
wkBook.Close False ' 必須 close wkBook file
excelAPP.Quit ' 離開 EXCEL APP

MsgBox "時數統計excel檔案更新並儲存完成 (sheets has been updated finished) "
Wscript.Quit ' 程式在此結束執行

'---Sub定義內容,依據男女,各別累計時數 +0.5
Sub M2H_c(MF_f)
IF MF_f = "2" then
FH_c = FH_c + 0.5
else
MH_c = MH_c + 0.5
End IF
End Sub

---by linct-----

留言
avatar-img
linct的沙龍
76會員
274內容數
樂趣體驗紀錄,沙龍房間有歌唱,生活,科技
linct的沙龍的其他內容
2025/07/19
1〈自動算出EXCEL資料各項統計數值〉 2〈大阪しぐれ〉 ,謝謝 https://vocus.cc/article/66573cddfd89780001712af1 大阪しぐれ,如下欣賞
2025/07/19
1〈自動算出EXCEL資料各項統計數值〉 2〈大阪しぐれ〉 ,謝謝 https://vocus.cc/article/66573cddfd89780001712af1 大阪しぐれ,如下欣賞
2025/07/17
EXCEL檔內之資料明細,利用函數自動算出各項統計數值後,作成所需的統計報表,以節省時間,避免人為錯誤,提升作業效率。
Thumbnail
2025/07/17
EXCEL檔內之資料明細,利用函數自動算出各項統計數值後,作成所需的統計報表,以節省時間,避免人為錯誤,提升作業效率。
Thumbnail
2025/06/08
VLC media player 是一款自由開源、跨平臺、免費的多媒體播放器,支援多種影音格式、提供媒體串流、檔案轉換、字幕操作等進階功能,更具備歌曲升降Key調整、去人聲播放等實用功能,是電腦上練歌的理想選擇。
Thumbnail
2025/06/08
VLC media player 是一款自由開源、跨平臺、免費的多媒體播放器,支援多種影音格式、提供媒體串流、檔案轉換、字幕操作等進階功能,更具備歌曲升降Key調整、去人聲播放等實用功能,是電腦上練歌的理想選擇。
Thumbnail
看更多
你可能也想看
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
只要會用鍵盤的人,人人都會做EXCEL表格。但是,如果你仔細研究,你或許會發現,工作是否有效率其實可以從一張EXCEL表裡看出來。這篇文章分享幾幾簡單的檢查方法與製作技巧。
Thumbnail
只要會用鍵盤的人,人人都會做EXCEL表格。但是,如果你仔細研究,你或許會發現,工作是否有效率其實可以從一張EXCEL表裡看出來。這篇文章分享幾幾簡單的檢查方法與製作技巧。
Thumbnail
這篇文章介紹如何使用VBA程式碼將【包含備註】的Excel檔案轉換為PDF檔。在研究這個問題時,作者花了3個小時多的時間,但後來發現了一個更簡單的方法,這讓作者感到震驚和懷疑人生。最後,作者強調使用他人的智慧來提高自己的能力。文章提供了相關參考文獻和圖片。
Thumbnail
這篇文章介紹如何使用VBA程式碼將【包含備註】的Excel檔案轉換為PDF檔。在研究這個問題時,作者花了3個小時多的時間,但後來發現了一個更簡單的方法,這讓作者感到震驚和懷疑人生。最後,作者強調使用他人的智慧來提高自己的能力。文章提供了相關參考文獻和圖片。
Thumbnail
Excel是一個強大的電子試算表軟體,不僅適用於數據分析和報表製作,還能通過VBA(Visual Basic for Applications)進行自動化和擴展功能。要使用這些進階功能,首先需要啟用開發人員選項。以下將詳細介紹在Windows和Mac版本的Excel中如何啟用這個選項。 在Wi
Thumbnail
Excel是一個強大的電子試算表軟體,不僅適用於數據分析和報表製作,還能通過VBA(Visual Basic for Applications)進行自動化和擴展功能。要使用這些進階功能,首先需要啟用開發人員選項。以下將詳細介紹在Windows和Mac版本的Excel中如何啟用這個選項。 在Wi
Thumbnail
在EXCEL中如果要進行四則運算,必須先輸入一個等於『=』,之後再輸入想要運算的算式。 但如果EXCEL的資料中,有一堆算式,但是前面沒有等於該怎麼快速計算呢😣 【📁檔案下載】 看教學之前可以先下載練習檔,學中做、做中學效果更好哦。 檔案下載 【▶️影音教學】
Thumbnail
在EXCEL中如果要進行四則運算,必須先輸入一個等於『=』,之後再輸入想要運算的算式。 但如果EXCEL的資料中,有一堆算式,但是前面沒有等於該怎麼快速計算呢😣 【📁檔案下載】 看教學之前可以先下載練習檔,學中做、做中學效果更好哦。 檔案下載 【▶️影音教學】
Thumbnail
如何運用函數來讓資料產生空白列,而且當輸入多少數字,就會插入多少空白列。 <插入空白列> E5=TOCOL(EXPAND(B5:B9,,C3+1,"")) 📝函數說明 ✍🏾EXPAND陣列擴展函數 函數說明=EXPAND(範圍,展開的列,展開的欄,要展開的內容)
Thumbnail
如何運用函數來讓資料產生空白列,而且當輸入多少數字,就會插入多少空白列。 <插入空白列> E5=TOCOL(EXPAND(B5:B9,,C3+1,"")) 📝函數說明 ✍🏾EXPAND陣列擴展函數 函數說明=EXPAND(範圍,展開的列,展開的欄,要展開的內容)
Thumbnail
向下填滿是EXCEL一個超好用的功能,依據不同的資料型態能有不同的填滿效果。 例如總金額=單價*數量 輸入完公式之後就會使用自動填滿的功能去將資料迅速的計算完成。 每隔一段時間就會有網友詢問,為什麼我的EXCEL沒辦法向下填滿,我昨天還可以用,我隔壁同事也可以用,從開機也是一樣,我的E
Thumbnail
向下填滿是EXCEL一個超好用的功能,依據不同的資料型態能有不同的填滿效果。 例如總金額=單價*數量 輸入完公式之後就會使用自動填滿的功能去將資料迅速的計算完成。 每隔一段時間就會有網友詢問,為什麼我的EXCEL沒辦法向下填滿,我昨天還可以用,我隔壁同事也可以用,從開機也是一樣,我的E
Thumbnail
在工作中,我們經常需要處理各種報表,而其中一項任務就是每天手動更新報表。這可能是一個繁瑣且容易被遺忘的工作,但有幸的是,我們可以利用VBA(Visual Basic for Applications)和Windows工作排程器來自動化這個過程,讓我們在不知不覺中完成這項任務。
Thumbnail
在工作中,我們經常需要處理各種報表,而其中一項任務就是每天手動更新報表。這可能是一個繁瑣且容易被遺忘的工作,但有幸的是,我們可以利用VBA(Visual Basic for Applications)和Windows工作排程器來自動化這個過程,讓我們在不知不覺中完成這項任務。
Thumbnail
在職場上,我們經常需要使用 Excel 表格來處理資料,而自動格式設定可以幫助我們快速將資料整理成一致的格式,讓資料看起來更清晰、更有效率。用 Excel 的快捷鍵自動出現自動格式設定技巧,可以讓我們在更短的時間內套用自動格式,讓工作更輕鬆。
Thumbnail
在職場上,我們經常需要使用 Excel 表格來處理資料,而自動格式設定可以幫助我們快速將資料整理成一致的格式,讓資料看起來更清晰、更有效率。用 Excel 的快捷鍵自動出現自動格式設定技巧,可以讓我們在更短的時間內套用自動格式,讓工作更輕鬆。
Thumbnail
Excel 是辦公室必備工具之一,但你知道如何快速將時間進行加總嗎?傳統方法是手動輸入公式,但如果時間數量多,就會非常耗時。今天,就來教你一個簡單的公式,讓你輕鬆將時間加總,讓你的工作效率大幅提升! 行政人員:可以用來計算工時、出貨時間、會議時間等,提高工作效率。
Thumbnail
Excel 是辦公室必備工具之一,但你知道如何快速將時間進行加總嗎?傳統方法是手動輸入公式,但如果時間數量多,就會非常耗時。今天,就來教你一個簡單的公式,讓你輕鬆將時間加總,讓你的工作效率大幅提升! 行政人員:可以用來計算工時、出貨時間、會議時間等,提高工作效率。
Thumbnail
Excel是職場上最常使用的軟體之一,學會Excel的常用技巧可以讓工作效率大幅提升。今天要教大家一個Excel的小技巧,可以一秒自動統計數據,並結合下拉式選單,讓工作更輕鬆。 其他應用:這個技巧還可以應用於其他領域,例如:統計考試成績、統計銷售額、統計客戶數量
Thumbnail
Excel是職場上最常使用的軟體之一,學會Excel的常用技巧可以讓工作效率大幅提升。今天要教大家一個Excel的小技巧,可以一秒自動統計數據,並結合下拉式選單,讓工作更輕鬆。 其他應用:這個技巧還可以應用於其他領域,例如:統計考試成績、統計銷售額、統計客戶數量
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News