现场材料管理台账核对问题的研究

时间:2022-08-01 06:21:40

现场材料管理台账核对问题的研究

[摘 要] 为了解决工地现场材料管理台账与供应商对账的问题,本文基于Excel表格设计了现场材料台账对账表,运用VB编制了宏程序,实现了与材料供应商核对明细账的功能。

[关键词] 现场材料台账对账表;宏;Excel表格

doi : 10 . 3969 / j . issn . 1673 - 0194 . 2012 . 10. 008

[中图分类号] F275 [文献标识码] A [文章编号] 1673 - 0194(2012)10- 0015- 03

在工程材料现场管理中,核对材料台账是一个很繁琐的事情,特别是在材料种类繁多且用量很大的情况下,现场核对耗时耗力。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

'――――判断(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的项

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

number1:

'――――完成第一次比较,继续第二次比较

'――――(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

'――――判断(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

'――――删除发生额为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

Exit Sub

number2:

End Sub

3 实施步骤

(1)Excel新建表格中建立现场材料管理对账单(如图2)。

(2)分别填入供应商供货明细和现场材料台账中的发生额,注意不要有空项并统一双方材料种类名称,合计行(行14)前一行要空白。

(3)运行宏程序Macro1,自动生成对账结果,L20=0。

4 应用效果

该程序预期达到了的效果,经使用准确率达到100%,大大节约了和供应商对账的时间,提高了工作效率。另外,该程序是基于Excel表格开发的,简便易操作,实用性很强。

主要参考文献

[1]Steven M Hansen.Excel 2003与VBA编程从入门到精通[M].北京:电子工业出版社,2004.

[2]John Walkenbach.Excel 2003高级VBA编程宝典[M].北京:电子工业出版社,2005.

上一篇:ERP系统下应收账款结算业务处理与管理控制策略 下一篇:企业成本管理战略方案透析