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