
在工程材料現場管理中,核對材料臺賬是一個很繁瑣的事情,特別是在材料種類繁多且用量很大的情況下,現場核對耗時耗力。Excel作為一種常用的辦公軟件,其功能被很多人所熟悉,通過進一步的開發,可以滿足很多數據處理的要求。筆者通過在Excel上應用自編的宏程序,實現了材料管理臺賬對賬的功能。
1 程序流程圖(圖1)
圖中所指列1、列2數據分別為供應商材料送貨明細賬和現場材料管理臺賬對應數據。
2 程序內容
Sub Macro1()
'――――(1)供應商出庫明細 與 (3)現場入庫明細 發生額相同的相互抵消
'―――― 確定(1)、(3)列發生額的筆數,若為0跳到第二項比較
Lastrow1 = 0
For 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)列發生額是否有相同項,若有則變成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
'――――刪除發生額為0的項
?。疲铮?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
number1:
'――――完成第一次比較,繼續第二次比較
?。ЖD―――(2)退回供應商材料明細與(4)現場材料退回明細 發生額相同的相互抵消
'――――確定(2)、(4)列發生額的筆數,若為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)列發生額是否有相同項,若有則變成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
?。ЖD―――刪除發生額為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
?。睿酰恚猓澹颍玻?
End Sub
3 實施步驟
(1)Excel新建表格中建立現場材料管理對賬單(如圖2)。
?。?)分別填入供應商供貨明細和現場材料臺賬中的發生額,注意不要有空項并統一雙方材料種類名稱,合計行(行14)前一行要空白。
(3)運行宏程序Macro1,自動生成對賬結果,L20=0。
4 應用效果
該程序預期達到了的效果,經使用準確率達到100%,大大節約了和供應商對賬的時間,提高了工作效率。另外,該程序是基于Excel表格開發的,簡便易操作,實用性很強。