您的位置: turnitin查重官网> 管理学 >> mba >> mba优秀范文 >Excel VBA生成供应链凭证

Excel VBA生成供应链凭证

收藏本文 2024-01-25 点赞:5432 浏览:20160 作者:网友投稿原创标记本站原创

[摘要] 从物资供应链系统中导出物资收发存Excel数据,运用Excel VBA编写程序生成符合财务软件要求的导入数据,完成大量供应链凭证录入工作,实现数据准确、工作简化的目的。
[关键词] Excel VBA;导入;财务软件;供应链;凭证
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2012 . 1

7. 002

[]A[文章编号]1673 - 0194(2012)17- 0003- 06
在财务工作中经常与Excel打交道,如果再学习一些VBA知识,就可以帮助我们解决工作中需要解决的问题。VBA是Office组件(主要是Excel)的内置语言,是应用程序开发语言Visual Basic 的子集,它易于学习掌握,是一种自动化语

源于:论文结论范文www.udooo.com

言,使常用的程序自动化,创建自定义的解决方案,可以将Excel作为开发平台实现应用程序。许多财务软件都有Excel接口,将业务活动、采购活动等输入的信息自动导入,生成总账会计报表,取消输入凭证这一繁琐的过程,替代传统手工操作,实现数据准确、输入迅速快捷。使凭证操作员的录入工作简化,工作重心转移到财务管理的其他方面。
1基础信息梳理
我院已有物资供应链软件,平时使用该软件管理物资收发存,每月结账后可以从该软件的数据库中导出符合要求的Excel数据。或者使用ADO数据库访问技术链接SQL数据库,取得所需的Excel数据。医院财务软件使用金蝶EAS,会计核算时要求物资数据入库要核算到应付账款——供应商,物资数据领用要能核算到使用科室。通过Excel VBA程序设计自动应用程序,将已有的数据生成符合金蝶EAS系统标准凭证导入要求的数据格式,可以满足会计核算要求。
经统计,我院目前有1.2万条四级明细物料。物料编码规则是四级9位,即第一级1位,第二级1位,第3位,第四级4位,相同类型的物料都归类到同一物料下。如果给最明细物料(即四级明细物料)添加上财务信息,程序运行时会影响其速度,而物料(约1 380条)已经归纳了相同的财务处理信息,因此可使用物料来作为程序的基础信息。此外,若同一物料的使用部门不同则核算的会计科目也有所不同。按照新的《医院财务制度》和《医院会计制度》的规定以及《上海市医疗机构医疗怎么写作项目和汇编(2010版)》中的“可另收费的一次性使用医疗器械目录”中的明细分类和解释,会计科目“医疗业务成本”下设有“一次性医疗器械”,明细内容有:手术器械类、植入材料和人工器官、各类介入器械、医用材料及高分子生物材料、口腔材料、其他。为能准确核算,在物料中将增设“手术器械类”等类别。对现有的四级明细物料进行校对,将相同的财务信息归类在同一物料下。建立《物料表》给物料明细中添加上财务信息,该表中有以下9列:“物料代码”、“物料名称”、“存货科目代码”、“管理费用科目代码”、“管理费用支出经济分类_编码”,“管理费用支出经济分类_名称”、“医疗业务成本科目”、“医疗业务成本支出经济分类_编码”、“医疗业务成本支出经济分类_名称”。其中“存货科目代码”是物料入库时的借方科目代码,领用时的贷方科目代码;“管理费用科目代码”、“医疗业务成本科目”是物料领用时借方科目代码;“管理费用支出经济分类_编码”、“医疗业务成本支出经济分类_编码”是借方科目辅助账核算项目编码。
此外,如果物资供应链软件中的科室设置与金蝶EAS系统中的核算单元不一致,还需做一个核算单元对应表。
经过梳理后的物料格式见表1(节选)。
2生成物料入库凭证
生成物料入库凭证时涉及3个工作表,分别是“物料”、“供应链入库”、“凭证”。将物资供应软件中的入库数据导出后拷贝到“供应链入库”工作表中,物资供应链入库数据要包含“供货单位代码”、“供货单位名称”、“号”、“资产代码”、“金额”等数据项。
(1)对物资供应链入库数据中的“供货单位名称”和“号”进行排序,为以后同一家供货单位的相同号生成在同一张入库凭证内做准备。
Sheets("供应链入库").Range("A1:V"&p).SortKey1:=Range("E2"),Order1:=xlAscending,Key2:=Range("G2"),Order2:=xlAs
cending,Header:=xlGuess,OrderCustom:=1,MatchCase:=False,Or
ientation:=xlTopToBottom,SortMethod:=xlPinYin,DataOption1:=xl
SortNormal,DataOption2:=xlSortNormal
(2)为每条物料添加上存货科目代码,作用在于可以分清该物料入库时核算的库存物资科目。
m = Sheets("物料").Range("a65536").End(xlUp).Row’取“物料”数据表的记录数
p = Sheets("供应链入库").Range("a65536").End(xlUp).Row’取“供应链入库”数据表的记录数
Sheets("供应链入库").Range("W1").Value="存货科目代码"
For a = 2 To p
zcdm = CStr(Mid(Sheets("供应链入库").Range("P" & a).Value, 1, 5))
For b = 2 To m
sjdm = CStr(Sheets("物料").Range("A" & b).Value)
If zcdm = sjdm Then
Sheets("供应链入库").Range("W" & a).Value = Sheets("物料").Range("c" & b).ValueEnd If
Next
Application.StatusBar = "共有" & p & "条记录,正在计算第" & a & "条数据......"
Next
(3)生成入库凭证。物料入库数据中财务信息已添加完成,接下来就可以生成入库凭证数据。同一张上可以有多条物料,付款时是按每张付款,每一张生成一张入库凭证,即供货单位相同且号也相同生成一张凭证。凭证借方是入库的物料,贷

源于:论文写作www.udooo.com

方是应付账款,挂“往来单位”辅助核算。借方摘要填写入库物料名称,贷方摘要填写供应商名称加号,付款时可方便进行校对。运行到每张的最后一条记录后要增加一次该的贷方数据,显示出该的合计金额。
p = Sheets(“供应链入库”).Range("a65536").End(xlUp).Row
y = 1
flh = 0 'flh:分录号
pzh = "0001" 'pzh:凭证号
pzxh = TextBox2.Value 'pzh:凭证序号
jehj = 0 'jehj:金额合计
With Sheets("凭证")
For a = 2 To p
je = Sheets(“供应链入库”).Range("v" & a).Value 'je:金额
fph = Sheets(“供应链入库”).Range("g" & a).Value 'fph:号
If Sheets(“供应链入库”).Range("g" & a + 1).Value <> fph Then
flh = flh + 1
y = y + 1
jehj = jehj + je
For b = 1 To 2
y = y +( b – 1)
.Range("A" & y).Value = "****" '****:是公司代码,此处隐去
.Range("B" & y).Value = DTPicker1.Value ' DTPicker:日期控件
.Range("C" & y).Value = DTPicker1.Value
.Range("D" & y).Value = Mid(DTPicker1.Value, 6, InStr(6, DTPicker1.Value, "-") - 6)
.Range("E" & y).Value = "物"
.Range("F" & y).Value = "'" & Format(pzh, "0000")
.Range("J" & y).Value = "BB01"
.Range("K" & y).Value = 1
.Range("N" & y).Value = 0
.Range("O" & y).Value = 0
.Range("R" & y).Value = ComboBox2.Value
.Range("U" & y).Value = 0
.Range("V" & y).Value = "FALSE"
.Range("X" & y).Value = "FALSE"
.Range("Y" & y).Value = "'" & pzxh & "--0"
If b = 1 Then
.Range("G" & y).Value = "'" & flh
.Range("H" & y).Value = Sheets("供应链入库").Range("q" & a)
.Range("I" & y).Value = Sheets("供应链入库").Range("w" & a)
.Range("L" & y).Value = "'1"
.Range("M" & y).Value = je
.Range("p" & y).Value = je
Else
flh = flh + 1
Range("G" & y).Value = "'" & flh
.Range("H" & y).Value = Sheets("供应链入库").Range("E" & a).Value & ",号:№" & Sheets("供应链入库").Range("g" & a).Value '摘要栏显示供应商名称及号
.Range("I" & y).Value = "'" & "2202.02"
.Range("L" & y).Value = "'0"
.Range("M" & y).Value = jehj
.Range("Q" & y).Value = jehj
.Range("AG" & y).Value = Sheets("供应链入库").Range("E" & a).Value & ",号:№" & Sheets("供应链入库").Range("g" & a).Value '辅助账摘要
.Range("AH" & y).Value = "往来单位"
.Range("AI" & y).Value = "ZY02." & Sheets("供应链入库").Range("D" & a).Value
.Range("AJ" & y).Value = Sheets("供应链入库").Range("E" & a).Value
.Range("BN" & y).Value = DTPicker1.Value
.Range("BO" & y).Value = "2099/7/1" '到期日
End IfNext
jehj = 0
flh = 0
pzh = pzh + 1
pzxh = pzxh + 1
Else
y = .Range("a65536").End(xlUp).Row
y = y + 1
flh = flh + 1
.Range("A" & y).Value = "11ZY"
.Range("B" & y).Value = DTPicker1.Value
.Range("C" & y).Value = DTPicker1.Value
.Range("D" & y).Value = Mid(DTPicker1.Value, 6, InStr(6, DTPicker1.Value, "-") - 6)
.Range("E" & y).Value = "物"
.Range("F" & y).Value = "'" & Format(pzh, "0000")
.Range("G" & y).Value = "'" & flh
.Range("H" & y).Value = Sheets("供应链入库").Range("q" & a).Value
.Range("I" & y).Value = Sheets("供应链入库").Range("w" &

中国免费论文网www.udooo.com

a)
.Range("J" & y).Value = "BB01"
.Range("K" & y).Value = 1
.Range("L" & y).Value = "'1"
.Range("M" & y).Value = je
.Range("N" & y).Value = 0
.Range("O" & y).Value = 0
.Range("P" & y).Value = je
.Range("R" & y).Value = ComboBox2.Value
.Range("U" & y).Value = 0
.Range("V" & y).Value = "FALSE"
.Range("X" & y).Value = "FALSE"
.Range("Y" & y).Value = "'" & pzxh & "--0"
jehj = jehj + je
End If
Next
End With
3生成物料出库凭证
生成物料出库领用凭证时涉及5个工作表,分别是“核算单元对应表”、“物料”、“供应链出库”、“出库整理”、“凭证”。物料出库的数据,先按“存货科目代码”和“核算单元名称”进行排序,参考整理好的“物料”信息,在“出库整理”工作表中添加财务信息。生成出库领料凭证时以一个存货科目为一张凭证,即贷方科目是一条记录,借方科目则是多条记录,是领用该物料的所有部门。

3.1 添加财务信息

按领用资产名称添加存货科目代码;按领用部门的性质进行判断添加“部门类别_编码”、“部门类别_名称”;按领用部门及领用资产的性质进行判断添加“支出科目代码”、“支出经济分类_编码”、“支出经济分类_名称”。
With Sheets("供应链出库")
n = .Range("a65536").End(xlUp).Row
m = Sheets("物料").Range("a65536").End(xlUp).Row
For b = 2 To m
Application.StatusBar = "《添加财务信息》运算,共有" & n & "条记录,正在计算第" & b & "条记录,请等候......"
zcm = CStr(Left(.Range("p" & b).Value, 5)) 'zcm:Sheets("供应链出库")中的p列资产代码
For d = 2 To w
wlm = CStr(Sheets("物料").Range("a" & d).Value) 'wlm:Sheets("物料")中的a列物料代码
bmlb = CStr(Mid(.Range("f" & b).Value, 3, 2)) 'bmlb:部门类别_编码
If zcm = wlm Then
.Range("x" & b).Value = Sheets("物料").Range("c" & d).Value
If (bmlb = "10" Or bmlb = "20" Or bmlb = "30") Then
.Range("aa" & b).Value = Sheets("物料").Range("g" & d).Value
.Range("ab" & b).Value = Sheets("物料").Range("h" & d).Value
.Range("ac" & b).Value = Sheets("物料").Range("i" & d).Value
Else
.Range("aa" & b).Value = Sheets("物料").Range("d" & d).Value
.Range("ab" & b).Value = Sheets("物料").Range("e" & d).Value
.Range("ac" & b).Value = Sheets("物料").Range("f" & d).Value
End If
End If
.Range("y" & b).Value = "'" & bmlb

摘自:硕士论文格式www.udooo.com

copyright 2003-2024 Copyright©2020 Powered by 网络信息技术有限公司 备案号: 粤2017400971号