不必開啟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
留言分享你的想法!
avatar-img
linct的沙龍
69會員
226內容數
樂趣體驗紀錄,沙龍房間有歌唱,生活,科技
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
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 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