張永輝 張艷艷
摘要:土工試驗中,由多個不同的試驗項目會生產大批量數據,包括原始數據及報告資料。整理數據時涉及大量的輸入、校對工作,會耗費大量的人力、精力和時間,成為限制提交報告等資料的環(huán)節(jié)及制約工作效率的瓶頸。為解決這一問題,利用Excel VBA開發(fā)程序,仿照人工先見樣號再輸入的同理,尋找、穿插同項試驗數據到土工試驗資料及報告總表中,可免去人工校對之苦,提高生產效率。
關鍵詞:土工試驗??? Excel VBA??? 電子數據批量輸入
中圖分類號: P209文獻標識碼:A?? 文章編號:1672-3791(2021)01(b)-0000-00
The Scheme of Using VBA to Solve the Batch "Input" of Data in the Sorting of Geotechnical Test Data
ZHANG Yonghui1? ZHANG Yanyan2
(1.Hebei Hydrological Engineering Geological Survey Institute, Shijiazhuang, Hebei Province, 050021 China; 2.Housing and Urban-Rural Development Bureau of Gaocheng District, Shijiazhuang City, Shijiazhuang, Hebei Province, 052160 China)
Abstract: In the geotechnical test, large numbers of data, including raw data and reports, are produced by several different test items. Data sorting involves a lot of input and proofreading, which consumes a lot of manpower, energy and time, and becomes a phase that limits the submission of reports and other materials or a bottleneck that restricts work efficiency. In order to solve this problem, Excel VBA development program is used to find and insert the same test data into the general table of geotechnical test data and report, which can avoid the pain of manual proofreading and improve production efficiency.
Key Words: Geotechnical test; Excel VBA; Electronic data; Batch input
在土工試驗報告整理中,包括常規(guī)、粘粒分析、三軸(UU、CU)、直接剪切、滲透、濕陷等多項試驗數據,這些單項試驗在各自數據處理后,往往都是采用人工輸入的方法,先輸入再讓人校對,工作量之大可想而知,即浪費大量的人力,又容易出錯?,F(xiàn)在各試驗多采用計算機生成電子版結果,筆者在工作中利用Excel VBA程序將生成的電子版數據通過查找、替換相同樣號后數據,以完成數據的修改即輸入問題[1-3]。
1用Excel VBA開發(fā)程序的重要性
Excel VBA是一門強化及改造Excel的程序語言,利用VBA可以完成兩大類任務:解決自己的工作問題及開發(fā)通用軟件,如果非僅僅處理個人面臨的工作問題,而是編程適用群體需求,則更為重要。筆者利用Excel VBA編寫的程序還可作為通用程序,延伸到其他工作、領域及日常生活中完成數據輸入問題。
2 Excel VBA運行環(huán)境
將VBA宏安全性設置為中或低(在安裝了防病毒軟件或檢查了所有要打開的文檔安全性時),以便創(chuàng)建運行環(huán)境,正常啟動VBA程序[3-5]。
3 用Excel VBA開發(fā)程序批量輸入電子數據
用VBA編寫程序及應用的步驟為:首先新建Excel工作簿,改名為“數據讀取程序”,將Sheet1重命名為“各試驗項源數據”|,將Sheet2重命名為“檢查同號并讀取”,從工具欄中調出“控制工具箱”,在“各試驗項源數據”工作表中添加“Command Button1”,雙擊進入VBA編輯器界面,則自動打開“工程資源管理器窗口”中的“Sheet1(各試驗項源數據)”,在代碼編輯區(qū)輸入編寫的以下批量讀取電子數據代碼(輸入主程序,首尾語句已自動生成):
Private Sub CommandButton1_Click()
Dim n As Integer, i As Integer, j As Integer, m As Integer, k As Integer
Dim num As Integer, x As Integer
n = Sheet1.Range("B65536").End(xlUp).Row '-----原始表格的范圍
m = Sheet2.Range("B65536").End(xlUp).Row '-----對比表格的范圍
x = 1
For i = 2 To n
For j = 2 To m
If Sheet2.Cells(j, 2) = Sheet1.Cells(i, 2) Then
For k = 3 To 100
If Sheet2.Cells(j, k) <> Sheet1.Cells(i, k) Then
Sheet2.Cells(j, k).Interior.ColorIndex = 3
Sheet2.Cells(j, k) = Sheet1.Cells(i, k)
End If
Next k
End If
Next j
Next i
For j = 2 To m
num = 0
For i = 2 To n
If Sheet2.Cells(j, 2) = Sheet1.Cells(i, 2) Then
num = num + 1
End If
Next i
If num = 0 Then
Sheet1.Cells(1, x) = Sheet2.Cells(j, 2)
x = x + 1
End If
Next j
End Sub
打開VBA編輯器界面的屬性窗口,將“CommandButton1”caption標題改為“讀取數據”且根據實際情況和個人愛好更改命令按鈕大小、顏色、字體。
在工作表“各試驗項源數據”中,將各單項試驗土樣編號及電子結果粘貼到以B2為起始的區(qū)域;將土工試驗總體報告的實驗室編號粘貼到工作表“檢查同號并讀取”中以B2為起始的該列。點擊“讀取數據”按鈕,則自動查找穿插單項結果到工作表“檢查同號并讀取”中,順序為報告土樣編號順序。
這個程序還有兩個亮點:一是工作表“各試驗項源數據”中首行會顯示另一工作表多余的土樣編號;二是在工作表“檢查同號并讀取”中可以將數據加底色紅色,以便作樣品數據檢查時看是否數據修改過。
該程序可將其存為模板,將VBA程序加密碼鎖定,將模板改為只讀格式。如果已經點擊了命令按鈕發(fā)現(xiàn)問題需重新處理可將工作表“檢查同號并讀取”中讀取的數據刪除處理后再運行命令[6-9]。
圖1,圖2為Excel工作簿和VBA程序編輯界面:
在試驗工作中運用此程序有效地解決了輸入、校對繁重的工作量問題,提高了工作效率,防止報告出錯,點擊命令按鈕,做到了一蹴而就,多快好省。
4用Excel VBA開發(fā)程序批量輸入電子數據作為通用軟件的意義
筆者利用Excel VBA不但可以解決土工試驗工作中的數據輸入問題,而且可以作為通用程序,完成其他工作中的數據輸入問題,只要是工作表“各試驗項源數據”中B列中有和工作表“檢查同號并讀取”中B列有相同的內容(包括如人名類的文本、數據類的數字編號),運行程序就可以按照工作表“檢查同號并讀取”中B列的順序替換后面列中的內容,從而完成數據輸入。利用該程序,有助于工作的開展,提高效率,有效避免數據出錯,對于電子數據的“輸入”具有重要的意義。
參考文獻
[1]? 羅剛君.Excel VBA程序開發(fā)自學寶典[M].4版.北京:電子工業(yè)出版社,2021.
[2]? 本書編委會.土工試驗方法標準:GB/T 50123-2019[S].北京:中國計劃出版社,2019.
[3]? 務新超.土力學[M].3版.河南:黃河水利出版社,2018.
[4]? 張巖艷,嚴晨.活用Excel VBA讓你的工作化繁為簡[M].北京:機械工業(yè)出版社,2016.
[5]? 陳瓊霞.巖土工程勘察土工試驗中的質量與管理策略[J].科技風,2017(8):151.
[6]? 袁波.巖土工程勘察土工試驗中的常見問題及改善方法[J].低碳世界,2017(26):39-40
[7]? 馬雪.巖土工程勘察土工試驗中的常見問題及措施[J].江西建材,2021(10):110-111.
[8]? 肖乾.巖土工程勘察質量控制與評價方法研究[D].合肥:安徽建筑大學,2020.
[9]? 李祿維.巖土工程勘察地下空間信息管理系統(tǒng)設計與實現(xiàn)[D].北京:中國地質大學(北京),2019.