
在工程材料現(xiàn)場管理中,核對材料臺賬是一個很繁瑣的事情,特別是在材料種類繁多且用量很大的情況下,現(xiàn)場核對耗時耗力。Excel作為一種常用的辦公軟件,其功能被很多人所熟悉,通過進一步的開發(fā),可以滿足很多數(shù)據處理的要求。筆者通過在Excel上應用自編的宏程序,實現(xiàn)了材料管理臺賬對賬的功能。
1 程序流程圖(圖1)
圖中所指列1、列2數(shù)據分別為供應商材料送貨明細賬和現(xiàn)場材料管理臺賬對應數(shù)據。
2 程序內容
?。樱酰?Macro1()
'――――(1)供應商出庫明細 與 (3)現(xiàn)場入庫明細 發(fā)生額相同的相互抵消
?。ЖD――― 確定(1)、(3)列發(fā)生額的筆數(shù),若為0跳到第二項比較
?。蹋幔螅簦颍铮鳎?= 0
?。疲铮?i = 6 To 3000
If IsEmpty(Range("c" & i).Cells) Then
Exit For
Else
Lastrow1 = Lastrow1 + 1
End If
Next i
If Lastrow1 = 0 Then GoTo number1
Lastrow2 = 0
For i = 6 To 3000
If IsEmpty(Range("I" & i).Cells) Then
Exit For
Else
Lastrow2 = Lastrow2 + 1
End If
Next i
If Lastrow2 = 0 Then GoTo number1
?。ЖD―――判斷(1)、(3)列發(fā)生額是否有相同項,若有則變成0
For m = 6 To Lastrow1 + 5
same = 0
n = 1
For p = 6 To Lastrow2 + 5
If n <= Lastrow2 And same = 0 Then
If Range("c" & m).Value = Range("I" & p).Value Then
Range("c" & m).Value = 0
Range("I" & p).Value = 0
same = 1
End If
n = n + 1
End If
Next p
Next m
?。ЖD―――刪除發(fā)生額為0的項
For i = Lastrow1 + 5 To 6 Step -1
If Range("c" & i).Value = 0 Then
Range("A" & i & ":c" & i).Select
Selection.Delete Shift:=xlUp
End If
Next i
For i = Lastrow2 + 5 To 6 Step -1
If Range("I" & i).Value = 0 Then
Range("G" & i & ":I" & i).Select
Selection.Delete Shift:=xlUp
End If
Next i
?。睿酰恚猓澹颍保?
'――――完成第一次比較,繼續(xù)第二次比較
'――――(2)退回供應商材料明細與(4)現(xiàn)場材料退回明細 發(fā)生額相同的相互抵消
?。ЖD―――確定(2)、(4)列發(fā)生額的筆數(shù),若為0結束程序
Lastrow1 = 0
For i = 6 To 3000
If IsEmpty(Range("F" & i).Cells) Then
Exit For
Else
Lastrow1 = Lastrow1 + 1
End If
Next i
If Lastrow1 = 0 Then GoTo number2
Lastrow2 = 0
For i = 6 To 3000
If IsEmpty(Range("L" & i).Cells) Then
Exit For
Else
Lastrow2 = Lastrow2 + 1
End If
Next i
If Lastrow2 = 0 Then GoTo number2
?。ЖD―――判斷(2)、(4)列發(fā)生額是否有相同項,若有則變成0
For m = 6 To Lastrow1 + 5
same = 0
n = 1
For p = 6 To Lastrow2 + 5
If n <= Lastrow2 And same = 0 Then
If Range("F" & m).Value = Range("L" & p).Value Then
Range("F" & m).Value = 0
Range("L" & p).Value = 0
same = 1
End If
n = n + 1
End If
Next p
Next m
'――――刪除發(fā)生額為0的項
For i = Lastrow1 + 5 To 6 Step -1
If Range("F" & i).Value = 0 Then
Range("D" & i & ":F" & i).Select
Selection.Delete Shift:=xlUp
End If
Next i
For i = Lastrow2 + 5 To 6 Step -1
If Range("L" & i).Value = 0 Then
Range("J" & i & ":L" & i).Select
Selection.Delete Shift:=xlUp
End If
Next i
?。牛椋?Sub
?。睿酰恚猓澹颍玻?
?。牛睿?Sub
3 實施步驟
(1)Excel新建表格中建立現(xiàn)場材料管理對賬單(如圖2)。
?。?)分別填入供應商供貨明細和現(xiàn)場材料臺賬中的發(fā)生額,注意不要有空項并統(tǒng)一雙方材料種類名稱,合計行(行14)前一行要空白。
?。?)運行宏程序Macro1,自動生成對賬結果,L20=0。
4 應用效果
該程序預期達到了的效果,經使用準確率達到100%,大大節(jié)約了和供應商對賬的時間,提高了工作效率。另外,該程序是基于Excel表格開發(fā)的,簡便易操作,實用性很強。