張獻珍, 谷倫, 張朝軍, 徐寧寧
(1.沈陽航天三菱汽車發(fā)動機制造有限公司,沈陽110179;2.哈爾濱理工大學機械動力工程學院,哈爾濱150080)
面對日積月累的日報信息,使用VB這個功能強大、使用便捷的編程軟件[1],能夠按照需求各異的主題條件,進行批量數(shù)據(jù)的篩選、分析工作,從而快速準確地獲得數(shù)據(jù)分析的技術成果。
使用Excel電子表格記錄生產(chǎn)線工作日報,首先要對記錄信息進行分類、對記錄單元格區(qū)域進行規(guī)劃,以此做到無論何人、何時做記錄,同一規(guī)劃區(qū)域的單元格記錄信息都屬于同一類別。如圖1所示,單元格 sheet1(3,3)填寫計劃數(shù),sheet1(4,3)填寫實績數(shù),sheet1(5,3)填寫當日進度。

一個Excel電子表格文件內(nèi)可以收入255個工作表,每個工作表可以是某天的日報,那么一個Excel電子表格文件可以收存250天的日報。安全起見,推廣階段每個文件我們只收存一個月的日報。為了便于管理,同類工作表的命名規(guī)則要始終保持不變,如【01.31】表示1月31日的日報,類推【05.08】表示5月8日的日報,注意其規(guī)則是“月·日”,且“月、日均用兩位數(shù)表示”,如圖2所示。

Excel電子表格軟件內(nèi)含VB開發(fā)工具,其編程語句比較簡單,如熱能工程專業(yè)、工業(yè)自動化專業(yè)、機械加工專業(yè)等非計算機專業(yè)的大學生都學過、用過‘BASIC’/C++/FORTURN等計算機語言,如果希望實現(xiàn)通過VB編程提高日報統(tǒng)計分析效率的夢想,只需三次實例訓練就能掌握VB編程的技能。
圖3中的工作表“目錄”是通過VB程序【Private Sub目錄_Click()】,對文件薄內(nèi)的所有工作表的名稱、索引號進行列表整理。

VB程序主要運用“FOR…TO…NEXT…”和“IF…THEN…”兩個語句,程序清單如下:
"Private Sub目錄_Click()
A=ActiveWorkbook.Sheets.Count
Sheets("目錄").Cells(2,1)="序號"
Sheets("目錄").Cells(2,2)="工作表→索引號"
Sheets("目錄").Cells(2,3)="工作表→名稱"
Sheets("目錄").Cells(2,4)="工作表錄入最后行號"
100∶Sheets("目錄").Select
Sheets("設備").Move BEFORE∶=Sheets(1)
Sheets("零件不良及供給情況").Move BEFORE∶=Sheets(1)
Sheets("熱試車").Move BEFORE∶=Sheets(1)
Sheets("生產(chǎn)").Move BEFORE∶=Sheets(1)
Sheets("目錄").Move BEFORE∶=Sheets("生產(chǎn)")
Sheets("目錄").Cells(1,3)="已收錄"&"00"&"個工作表"
For I=1 To A
B=ActiveWorkbook.Sheets(I).Name
C=ActiveWorkbook.Sheets(I).Index
Sheets("目錄").Cells(2+I,1)=I
Sheets("目錄").Cells(2+I,3)=B
Sheets("目錄").Cells(2+I,2)=C
For KK=10 To 20000
If ActiveWorkbook.Sheets(B).Cells(KK,2)<0.1 Then K2=0
If ActiveWorkbook.Sheets(B).Cells(KK,2)>0.1 Then K2=1
If ActiveWorkbook.Sheets(B).Cells(KK,3)<0.1 Then K3=0
If ActiveWorkbook.Sheets(B).Cells(KK,3)>0.1 Then K3=1
If ActiveWorkbook.Sheets(B).Cells(KK,4)<0.1 Then K4=0
If ActiveWorkbook.Sheets(B).Cells(KK,4)>0.1 Then K4=1
KKK=K2+K3+K4
If KKK=0 Then GoTo 500
Next KK
500∶Sheets("目錄").Cells(2+I,4)=KK-1
Sheets("目錄").Cells(1,3)=I-1Next I
Sheets("目錄").Cells(1,3)="已收錄"&I-1&"個工作表"
End Sub
通過對積累日報的專項統(tǒng)計和分析,能夠區(qū)分生產(chǎn)過程中的普遍現(xiàn)象和個別現(xiàn)象。下面通過VB程序?qū)σ荒甑纳a(chǎn)線日報中關于【熱試車發(fā)現(xiàn)不良及排故情況】的記錄進行篩選,整理到一個工作表內(nèi)。如圖4所示,在“目錄”工作表中增加一個【熱試車】按鈕,在工作簿中增加【熱試車發(fā)現(xiàn)不良及排故情況】工作表,通過下面的VB程序,便可把全月生產(chǎn)線日報中與【熱試車發(fā)現(xiàn)不良及排故情況】相關的記錄篩選、整理出來。

程序中運用多個“IF…THEN…END IF“語句,對目標工作表的有效末行的行號進行判定,確保已收錄信息的安全。程序清單如下:
For BB=2 To KK
If Sheets(B).Cells(2,15)=Sheets("熱試車").Cells(BB,2)Then TT=1
If TT=1 Then GoTo 1600
Next BB For MM=5 To 100
ZZZ=Mid(Sheets(B).Cells(MM,1),1,1)
If ZZZ=3 Then
For AA=MM+2 To 200
If Sheets(B).Cells(AA,3)=0 Then GoTo 1300
Sheets("熱試車").Cells(KK,1)=B
Sheets("熱試車").Cells(KK,2)=Sheets(B).Cells(2,15)
Sheets("熱試車").Cells(KK,3)=Sheets(B).Cells(AA,3)
Sheets("熱試車").Cells(KK,4)=Sheets(B).Cells(AA,4)
Sheets("熱試車").Cells(KK,5)=Sheets(B).Cells(AA,5)
Sheets("熱試車").Cells(KK,6)=Sheets(B).Cells(AA,8)
Sheets("熱試車").Cells(KK,7)=Sheets(B).Cells(AA,9)
Sheets("熱試車").Cells(KK,8)=Sheets(B).Cells(AA,11)
Sheets("熱試車").Cells(KK,9)=Sheets(B).Cells(AA,12)
Sheets("熱試車").Cells(KK,10)=Sheets(B).Cells(AA,13)
Sheets("熱試車").Cells(KK,11)=Sheets(B).Cells(AA,14)
KK=KK+1
Next AA
1300∶End If
Next MM
1600∶TT=0
2000∶Next I
Sheets("熱試車").Select
80000∶End Sub
同樣,編寫VB程序,對全年12個月的生產(chǎn)線日報進行專題統(tǒng)計,結(jié)果見圖5。2013年【熱試車發(fā)現(xiàn)不良及排故情況】共計213條。

通過對全面日報進行篩選和整理得知,全年日報記錄中關于【熱試車發(fā)現(xiàn)不良及排故情況】共計213條,涉及發(fā)動機213臺。其中【異響】為185臺,占86.9%,屬于典型故障。進一步分析發(fā)現(xiàn),引發(fā)【異響】的工件有凸輪軸、缸蓋、泵殼,還有氣門間隙。其分別占比如圖6。
據(jù)此,研討制定了《更換凸輪返修作業(yè)標準》、《更換缸蓋返修作業(yè)標準》和《調(diào)整氣門返修作業(yè)標準》,以此完善了文件體系。
在當今生產(chǎn)加工企業(yè)中往往生產(chǎn)產(chǎn)品種類繁多,需要對每種產(chǎn)品的狀況加以分析了解,需要作出相應的生產(chǎn)線日報的統(tǒng)計,但由于生產(chǎn)線日報數(shù)據(jù)量較大,因此,面對繁而不亂、多且有序的數(shù)據(jù)表格,要想提高工作效率。使用VB/VBA編程,編制《xx成品入庫信息》手工錄入界面、《xx返修作業(yè)記錄單-錄入窗口》、13年生產(chǎn)日報匯總表是非常需要。對生產(chǎn)企業(yè)的管理與企業(yè)的生產(chǎn)情況統(tǒng)計快速作出結(jié)果分析,及時作出相應生產(chǎn)調(diào)整,對企業(yè)的發(fā)展與創(chuàng)新起到積極作用。

圖6 熱試車不良率統(tǒng)計
[1] 朱燁行,李艷玲.用VB讀寫Excel表和Access表的方法[J].電腦編程技巧與維護,2015(6)∶45-46.
[2]逾155萬會員共筑家園Excel Home[EB/OL].[2015-03-30].http∶//www.excelhome.net.
[3] 明日科技.Visual Basic開發(fā)經(jīng)驗技巧寶典[M].北京:人民郵電出版社,2007.