ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 15035|回复: 32

[原创] 用VBA实现防伪开票系统数据导入用友软件

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2014-9-13 17:54 | 显示全部楼层 |阅读模式
本帖最后由 cf7315752 于 2014-9-14 15:14 编辑

一、引言
在增值税纳税企业中,企业税务会计根据业务部门提出的申请,在开票系统中开具发票,销售会计则根据发票信息在财务软件中编制记账凭证。在这个过程中,税务会计需要将开票信息输入开票系统,销售会计需要将发票信息输入财务软件,原始数据的反复输入,既重复了工作,又降低了准确性。本文采用EXCEL VBA技术,以增值税防伪税控开票子系统V7.23.10版本和用友U8软件为例,设计开发了一款将开票系统数据转换为财务系统数据的接口,实现了开票系统数据向用友软件自动导入。
实现数据导入,前提是获得需要导入的数据,然而旧版防伪开票子系统是不支持已开具发票数据导出的,然而,随着国家税务总局2014年第17号公告的发布,这个问题得到了较好地解决。根据公告的要求,新版的防伪开票子系统可以将已开具的发票数据从税控开票软件中导出(导出数据提供XLS和XML两种格式),满足纳税人内部管理信息系统与税控开票软件的衔接需要。
在用友U8软件中,总账工具是总账系统中携带的一个应用子程序,它可以实现可以不同账套或同一账套不同机器之间的数据传递,总账工具中的凭证引入功能可以按标准格式将TXT文本文件引入到凭证库中。了解了标准格式TXT文件,用VBA技术将防伪开票系统导出的数据转换成标准文件,即可实现数据的引入。
二、数据转换接口设计
对下文的案例,做如下假设:
1、XX公司每卖一批商品开具一张发票;
2、XX公司根据每张发票生成1张记账凭证,凭证类型为“转”,附件张数为2,填制日期为“开票日期”,制单人为“张三”;
3、XX公司出售商品为主营业务,主营业务科目编码为6001,公司应收账款按客户分类核算,应收账款科目编码为1122,客户编码为“购方税号”,应交税费销项税科目编码为222105。
1.开票数据导出
【第一步】打开“增值税防伪税控系统”,点击“报税处理/抄报税管理/开票数据导出”功能,如图1-1所示。
图1-1 开票数据导出.jpg
图1-1 开票数据导出
【第二步】系统弹出文件导出对话框,如图1-2所示,输入查询条件,包括查询月份、开票日期及购方信息等,点击“确定”按钮。
图1-2 查询条件.jpg
                              
1-2 查询条件
【第三步】在系统弹出的对话框中选择导出文件存放路径,输入文件名,选择保存类型,点击“保存”按钮,进行开票数据导出时,保存类型包括EXCEL文件和XML文件两种。
【第四步】系统开始导出发票。
【第五步】导出后给出成功提示,在导出文件存放路径下可以查看到导出的文件。
【第六步】导出文件如图1-3所示,将其所在工作表的名称改为“发票数据”。
图1-3 Sheets(“发票数据”).jpg
1-3 Sheets(“发票数据”)
根据图1-3中的数据,编制对应的分录:
摘要:销售A公司X商品
借:应收账款(1122)—A公司(01) 234.00
贷:主营业务收入(6001)            200.00
贷:应交税费—应交销项税(222105)  34.00
2.制作用友总账系统可识别的导入文件
如图2-1所示格式的文件可通过用友的总账系统导入生成凭证
图2-1  用友可识别文件.jpg
图2-1  用友可识别文件
如上分录转换成可导入用友系统的格式如下:
20X4-1-1,"","1",2," 销售A公司X商品","1122",234.00,,,,,"张三",,"",,"","","01","",
20X4-1-1,"","1",2," 销售A公司X商品","6001",,200.00, ,,," 张三",,"",,"","","","",
20X4-1-1,"","1",2," 销售A公司X商品","222105",,34.00,,,," 张三",,"",,"","","","",
【第一步】建立Sheets(“凭证”),用于存放转换后的发票数据,如图2-2所示。
图2-2 Sheets(“凭证”).jpg
2-2 Sheets(“凭证”)
【第二步】通过如下代码将Sheets(“发票数据”)中的数据写入Sheets(“凭证”)
hmax = Sheets("发票数据").Range("A65535").End(xlUp).Row
With Sheets("凭证")
For i = 7 To hmax
.Cells(3 * i - 19, 6) = "1122"
.Cells(3 * i - 18, 6) = "6001"
.Cells(3 * i - 17, 6) = "222105"
.Cells(3 * i - 19, 7) = Sheets("发票数据").Cells(i, 14)
.Cells(3 * i - 19, 7) =.Cells(3 * i - 19, 7) +Sheets("发票数据").Cells(i, 16)
.Cells(3 * i - 18, 8) = Sheets("发票数据").Cells(i, 14)
.Cells(3 * i - 17, 8) = Sheets("发票数据").Cells(i, 16)
.Cells(3 * i - 19, 14) = Sheets("发票数据").Cells(i, 2)
.Cells(3 * i - 19, 18) = Sheets("发票数据").Cells(i, 4)
For j = 0 To 2
.Cells(3 * i + j - 19, 1) = Sheets("发票数据").Cells(i, 7)
.Cells(3 * i + j - 19, 2) = "转"
.Cells(3 * i + j - 19, 3) = i - 6
.Cells(3 * i + j - 19, 4) = 2
.Cells(3 * i + j - 19, 5) = "销售" & Sheets("发票数据").Cells(i, 3)
.Cells(3 * i + j - 19, 5)= .Cells(3 * i + j - 19, 5) &Sheets("发票数据").Cells(i, 9)
.Cells(3 * i + j - 19, 12) = "张三"
Next j
Next i
End With
写入完成后,Sheets(“凭证”)数据如图2-3
图2-3写入数据后的Sheets(“凭证”).jpg
2-3写入数据后的Sheets(“凭证”)
【第三步】通过如下代码将Sheets(“凭证”)中的数据输出成txt格式文件
Dim Line_head As String
Dim sLine As String
Dim sFName As String
Dim iFNnumber As Integer
Const SDH As String = ","
Const SYH As String = """"
sFName = "E:\凭证引入.txt"
sLine_head = "填制凭证,V800"
iFNnumber = FreeFile
Open sFName For Output As #iFNnumber
Print #iFNnumber, sLine_head
t = 2
With Sheets("凭证")
Do
sLine = .Cells(t, 1) & SDH
sLine = sLine & SYH & .Cells(t, 2) & SYH& SDH
sLine = sLine & SYH & .Cells(t, 3) & SYH& SDH
sLine = sLine & .Cells(t, 4) & SDH
sLine = sLine & SYH & .Cells(t, 5) & SYH& SDH
sLine = sLine & SYH & .Cells(t, 6) & SYH& SDH
sLine = sLine & Format(.Cells(t, 7),"0.00") & SDH
sLine = sLine & Format(.Cells(t, 8),"0.00") & SDH
sLine = sLine & .Cells(t, 9) & SDH
sLine = sLine & .Cells(t, 10) & SDH
sLine = sLine & .Cells(t, 11) & SDH
sLine = sLine & SYH & .Cells(t, 12) & SYH& SDH
sLine = sLine & .Cells(t, 13) & SDH
sLine = sLine & SYH & .Cells(t, 14) & SYH& SDH
sLine = sLine & .Cells(t, 15) & SDH
sLine = sLine & SYH & .Cells(t, 16) & SYH& SDH
sLine = sLine & SYH & .Cells(t, 17) & SYH& SDH
sLine = sLine & SYH & .Cells(t, 18) & SYH& SDH
sLine = sLine & SYH & .Cells(t, 19) & SYH& SDH
Print #iFNnumber, sLine
t = t + 1
Loop Until IsEmpty(.Cells(t, 1))
End With
Close #iFNnumber
在E盘下找到“凭证引入.txt”文件,如图2-4所示。
图2-4  凭证引入.txt.jpg

图2-4  凭证引入.txt

3.txt文件导入用友软件
【第一步】点击“用友U890/系统服务/总账工具”,打开总账工具界面,如图3-1。
图3-1 用友总账工具.jpg

图3-1 用友总账工具
【第二步】在“数据源/文件数据”处选择“E:\凭证引入.txt”,双击“凭证引入”,即可将凭证引入到用友软件中,如图3-2。
图3-2 用友总账工具凭证引入.jpg

图3-2 用友总账工具凭证引入

三、小结
本文利用Excel VBA在处理表格方面的优越特性,将新版防伪开票子系统导出的数据加工处理,生成了能直接导入用友软件的标准格式TXT文件,减轻了会计人员账务处理的负担。然而,针对该问题本文更多地是提供一种处理思路,虽然文中给出了一个案例的完整代码,但所用案例建立在众多假设之上,在实际会计业务中,这些假设不一定全部满足,需要具体问题具体分析。尽管如此,本文提出的处理思路仍具有重要的理论价值和应用价值,各企业可根据企业的实际情况,结合VBA的强大功能,设计出适合于自己企业的数据转换接口。
如有疑问请联系:529039284
详细信息参见如下链接《VBA实现防伪开票系统数据导入用友软件,《新会计》,2014年第8
http://wenku.baidu.com/link?url=FMWW-tm7vBtna0o9tcbwptT8Qib9smDYUI77XHWhxABkT2BODP8AFXYzyrYy6obs8Arp7qhXvXCijYvJNpMuxmv2d3CPKkOihnSGjgW2Yea


评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-13 18:02 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
由于今天已经上传10个附件,文中所用案例文件明天上传。



TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-14 15:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
案例Excel文件( 含完整代码).rar (13.74 KB, 下载次数: 675)
上文案例Excel文件,内含完整代码。
如有疑问联系,QQ529039284

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-15 23:04 | 显示全部楼层
下载Excel文件后 点击“生成凭证”按钮,即可实现相应计算

搜狗截图14年09月15日1826_1.jpg

TA的精华主题

TA的得分主题

发表于 2014-9-17 21:53 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
厉害,高人

TA的精华主题

TA的得分主题

发表于 2014-9-23 18:21 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-23 20:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
chenyun1234 发表于 2014-9-17 21:53
厉害,高人

嘿嘿 一直在学习中……

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-23 20:40 | 显示全部楼层
clotus 发表于 2014-9-23 18:21
赞一个!
感谢分享!

好东西 一起分享

TA的精华主题

TA的得分主题

发表于 2014-9-24 20:03 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-10-5 00:20 | 显示全部楼层
太感谢了,我早就想找到导入财务软件的方法这下总算找到,要好好研究一下, 再次感谢楼主.
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-24 16:15 , Processed in 0.054001 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表