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

2012-04-29 00:44洪涛,闻涛,侯兴华
中国管理信息化 2012年10期
关键词:发生额宏程序台账

洪涛,闻涛,侯兴华

[摘要] 为了解决工地现场材料管理台账与供应商对账的问题,本文基于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.

猜你喜欢
发生额宏程序台账
用EXCEL电子表格文档创建简易财务系统
椭球槽宏程序编制及其Vericut仿真
基于EXCEL中的函数编制资产负债表
工作落实,一本台账起什么作用?
靖边规范基层党建工作台账
基于Vericut的四轴数控加工宏程序仿真研究
新行政单位会计制度基建并账规定解读
新高校基建并帐业务的会计处理
G代码B类宏程序在数控切割参数化图形库中的应用
韩雪峰的“台账”