發表文章

監造及施工報表 VBA化

圖片
"寫在篇首,由於程式的設計是給特定格式的預算書格式使用,無法應對各種不同編排方式 ,所以無法給予檔案,另若有VBA的設計想法討論,是歡迎的。" 有鑑於過去 在製作監造報表的時候 大家通常都使用LOOKUP的函式功能去抓取相對應的資料庫數字 在我看過許多河川局的報表之後 發現用LOOKUP函式的已經算不錯的了 像是三局或四局的報表 則是一天一個頁面 沒有資料庫的概念 這通常會導致EXCEL的檔案特別的大 而且填報表會顯得麻煩 每次都還必須去計算累計數量再去填列 雖然LOOKUP可以解決很多事情 但它畢竟不是C4 不能像是流言終結者一樣處理「全部」的事情 因為LOOKUP並沒辦法用拉的 去調整函式的第三個項目 (Row_index_num或Column_index_num) 必須一個一個去針對個別項目做修改 這個手動的工作 就常常會出錯 導致你可能填了好幾天的報表 然後發現進度不對 才一個一個項目來Debug 所以LOOKUP好用 但是麻煩 之前一直有想過用VBA來建立自動化的表單 但是一直沒動力去寫 直到後來偶然的機緣下遇到八局的沈大哥 以及 水利會的 Hank Lin 在共同的討論以及互相協助下 我才開始把這個報表開發出來 這個報表有幾個功能 1.直接匯入PCCES的檔案建資料庫 2.VBA自動建立報表 3.批次列印功能 4.展延工期功能 5.各個月5日及20日進度及工項施做金額抓取(用來畫圖用的) 整個報表的更新上也感謝有許多同事幫忙抓蟲子 讓現在的版本可以達到基本使用沒甚麼大問題的狀況 報表的施做邏輯如下 首先先根據二局既有的報表格式來作為基礎,然後建立資料匯入模組來吃進PCCES的資料,這個部分就要感謝八局的沈大哥提供CODE參考,讓我可以不用花太多時間在上面。 接著建立日報資料庫,讓大家來填列每日工作數量,然後用SUMIF函數來算今日累計跟昨日累計,再把兩者相減就可以得到今日施做數量了呢!!,最後在日報資料庫另外也根據SUMIF的值來計算實際進度~~ 然後再來根據工項以及二局既有格式來建立報表,建報表就有趣了,先前的版本由於預設的工項空格很多,如果一件工項少的案子匯入,整張報表就會空空的很難看....,因此用了有點土法煉鋼的方式來進行工項...