[摘 要] 为了提高会计日常工作中的银行对账效率,本文基于Excel表格设计了银行存款余额调节表,运用VB编制了宏程序,实现了银行对账的功能。
[关键词] 银行存款余额调节表;宏;Excel
[中图分类号]F232[文献标识码]B[文章编号]1673-0194(2008)03-0018-03
在会计日常工作中,银行对账是一个很烦琐的事情,特别是在业务量比较大的情况下,编制余额调节表需要耗费很多时间。虽然很多财务软件提供了相应的银行对账功能,但是很多时候并没有起到其所承诺的作用。Excel作为一种常用的办公软件,其功能被很多人所熟悉,通过进一步的开发,可以满足很多数据处理的要求。笔者通过在Excel上应用自编的宏程序,实现了银行对账的功能。该程序能将银行对账单与日记账中相符的发生额勾对删除,仅保留不符项最后形成余额调节表,应用十分方便。
一、程序流程图(见图1)
二、程序内容
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
三、实施步骤
1. 在Excel新建表格中建立银行存款余额调节表(如图2)。
2. 分别填入银行对账单及单位日记账中的发生额,注意不要有空项,合计行(行18)前一行要空白。
3. 运行宏程序macro1,自动生成对账结果,L20=0。
四、应用效果
该程序达到了预期的效果,在使用中准确率达到100%,大大节约了银行对账的时间,提高了工作效率。另外,该程序是基于Excel开发的,操作简便,实用性很强。
主要参考文献
[1] Bill Jelen,Tracy Syrstad.巧学巧用Excel 2003——VBA与宏[M]. 北京:电子工业出版社,2005.
[2] John Walkenbach.Excel 2003高级VBA编程宝典[M]. 北京:电子工业出版社,2005.
[3] Steven M Hansen.Excel 2003与VBA编程——从入门到精通[M]. 北京:电子工业出版社,2004.