■ 曾俊輝 Zeng Junhui
Microsoft Excel是微軟公司的辦公軟件Microsoft office的組件之一,它可以進行各種數(shù)據(jù)的處理、統(tǒng)計分析和輔助決策操作,廣泛地應用于工程管理、統(tǒng)計等眾多領域。在此介紹一種以Excel辦公軟件為平臺,以Excel函數(shù)為工具,應用于工程質量監(jiān)督管理的新方法。通過對工程質量監(jiān)督抽查記錄的管理實例,介紹用該方法自動生成記錄表的編程過程。
質量監(jiān)督抽查記錄臺帳的工作表名稱設置為“臺帳”(圖1)。抽查記錄的工作表名稱從“001”開始。這樣做的好處是在臺帳工作表的 “編號” (B列)和抽查記錄工作表“名稱”之間建立關聯(lián),便于在抽查記錄工作表中自動調用臺帳工作表的數(shù)據(jù)內容。最終實現(xiàn)在臺帳工作表中錄入監(jiān)督抽查的相關信息,便自動生成所需的抽查記錄表格(圖2 )。
要實現(xiàn)在抽查記錄工作表中自動調用臺帳工作表的數(shù)據(jù)內容,首先就要提取出當前抽查記錄工作表的名稱,如“001”,下一步才能通過編輯公式來調用臺帳工作表中對應編號“001”的相應內容。
2.1.1 打開VBA
Excel2003支持VBA編程,VBA是Visual Basic For Application的簡寫形式。VBA的使用可以達成執(zhí)行特定功能或是重復性高的操作。
執(zhí)行系統(tǒng)菜單中的“工具”/“宏”/“Visual Basic 編輯器”命令,會打開Visual Basic編輯窗口,在VBA系統(tǒng)中執(zhí)行“插入”/“模塊”命令,彈出“模塊1”代碼編寫窗口。
2.1.2 編寫自定義函數(shù)的程序代碼
在剛才彈出的“模塊1”代碼編寫窗口中,輸入如下代碼:
Public Function ThisSheetName(……) As String
Application.Volatile True
ThisSheetName = Application.Caller.Parent.Name
End Function
代碼編輯完成后保存并退出VBA。
退出VBA,則在工作表中自動添加自定義函數(shù)This Sheet Name(……),其功能是調用當前工作表名稱。但這個函數(shù)是以一個宏的形式存在的,要使它能夠有效,必須將EXCEL2003系統(tǒng)的宏安全級別設為中級或低級。在系統(tǒng)菜單中的“工具”/“宏”/“安全性…”對話框中可以對其進行設置。
將圖2所示的工程質量監(jiān)督抽查記錄工作表“001”中F1單元格的計算公式編輯為“=TEXT(This Sheet Name(……),"0")+2”。 This Sheet Name(……)函數(shù)可以得到當前工作表名稱“001”; TEXT(……)函數(shù)可以將數(shù)值“001”轉換為按指定數(shù)字格式表示的數(shù)值“1”;“+2”的目的是我們要得到臺帳工作表中對應編號為“001”的第3行內容。所以最終公式得出的值為“3 ”。
通過上面的步驟,我們先是得到了當前抽查記錄工作表名稱“001”,然后通過計算調整,得到了對應在臺帳工作表“編號”為001中所需內容的行號“3”,下面將通過EXCEL自帶的系統(tǒng)函數(shù)來編輯公式,在抽查記錄工作表“001”中,跨工作表調用臺帳工作表中“臺帳”相應單元格的內容。
在抽查記錄工作表“001”中,單擊C4單元格,輸入公式“=INDIRECT("臺帳"&"!"&"F"&$F$1)”。
系統(tǒng)函數(shù)INDIRECT(……)的作用是引用括號內字符所指定的單元格的內容。這里的("臺帳"&"!"&"F"&$F$1)指定的位置是臺帳工作表的F3單元格 (臺帳! F3),即圖1中所示“工程名稱”這一列第三行的內容。公式編輯完成之后,系統(tǒng)會對C4單元格自動計算更新,顯示的結果為“***項目 16#樓”。
按照上述步驟,依次對圖2所示抽查記錄工作表“001”中的E4、C5、E5、A7單元格分別輸入公式“=INDIRECT("臺帳"&"!"&"G"&$F$1)”、“ =INDIRECT("臺帳 "&"!"&"D"&$F$1)”、“ =INDIRECT("臺帳 "&"!"&"E"&$F$1)”、“ =INDIRECT("臺帳"&"!"&"J"&$F$1)”。系統(tǒng)自動計算更新,分別在相應單元格顯示“基礎梁”、“ 16-3~16-6/16-C~16-L”、“ 2011-11-15”、“抽查情況( 略 )”。
對于正在辦理質量監(jiān)督手續(xù)且提前進行介入的工程,由于還沒有質量監(jiān)督注冊登記號,臺帳工作表中的“質量監(jiān)督號”可能為空白,如果直接輸入上述公式進行調用,返回的結果是“0”。這會影響到抽查記錄表的后續(xù)打印操作。
以圖2所示抽查記錄工作表“001”的B3單元格為例,增加一個系統(tǒng)判斷函數(shù)IF(……)對調用值進行判斷,如果調用值為空,則顯示空格。如果調用值存在,則顯示所調用內容。輸入公式“=IF(INDIRECT("臺帳"&"!"&"C"&$F$1)="","",INDIRECT("臺帳"&"!"&"C"&$F$1))”。如果圖1所示臺帳工作表“臺帳”中的C3單元格為空白,則顯示空白。這里調用值為非空格,所以會顯示“WZJ 2011-50”。
通過上述操作,該工程質量監(jiān)督抽查記錄管理文件制作成功,在實際使用中,只需要在圖1所示的質量監(jiān)督抽查記錄臺帳即“臺帳”工作表中,在“編號”001對應行輸入“質量監(jiān)督號”、“抽查部位”、“抽查日期”、“工程名稱”、“抽查部位”、“抽查情況”,在圖2所示的工程質量監(jiān)督抽查記錄即“001”工作表中,系統(tǒng)便能自動填充相應內容。
以抽查記錄工作表“001”為母表,復制其他工作表,名稱依次為“002、003、004、005…”。這樣一來就能很快地制作好數(shù)量較多的抽查記錄?;ヂ?lián)網(wǎng)上還能找到以編號來復制工作表的EXCEL工具,用來復制工作表會更便捷。
本文以工程質量監(jiān)督抽查記錄的管理、自動生成為例,介紹了利用系統(tǒng)函數(shù)、自定義函數(shù)編輯計算公式的方法和技巧。此外,還可以舉一反三將其運用到整改通知、監(jiān)督驗收臺帳的管理工作中,對于提高工程質量監(jiān)督的工作效率具有參考和借鑒作用。