- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Excel VBA动态数据透视表技术在医院会计工作中高效应用
基于Excel VBA动态数据透视表技术在医院会计工作中高效应用
[摘 要] 基于Excel VBA的动态数据透视表技术可满足日常会计工作需求,从而弥补了医院财务软件统计、分析、汇总等功能的不足。本文利用Excel VBA自动控制数据透视表技术动态生成医院会计科目试算平衡表,以避免会计凭证电算化录入工作中的错误,并比对分析医院会计科目总账和明细账数据在一段时间内的变化特征,以便及时、准确、高效地为领导层提供决策依据。
[关键词] Excel;VBA;数据透视表;医院会计
[中图分类号]F232[文献标识码]A[文章编号]1673-0194(2008)01-0030-03
专门的医院会计电算化软件在处理医院会计数据的过程中实现了流程化,而Excel主要用于实现专门的会计电算化软件所无法实现的功能,如对医院会计数据的动态处理、预测、分析、加工、统计汇总等。Excel已经在各医院会计核算中有不同程度的应用,但大多是基于会计人员手工操作的,而且多是重复操作,步骤烦琐,这样既影响了工作效率,又不能快速、准确地生成有价值的会计信息。因此熟练掌握Excel中内嵌的VBA技术,不但能提高日常会计工作质量,而且可以Excel VBA加载宏的形式,一次生成特定的工作模板,多次使用,提高了会计日常工作效率,为确保会计信息质量以及试算平衡提供了最基础的保障。本文利用Excel VBA自动控制数据透视表技术动态生成医院会计科目试算平衡表,以避免电算化会计凭证录入工作中的错误,并比对分析医院会计科目数据在一段时间内的变化特征,以便及时、准确、高效地为领导层提供决策依据。
1 资料来源
资料来源于某医院2006年AC90数据库,本例提取了会计原始记账凭证32 679条记录。
2 关键技术与方法
2. 1数据源的获取
Excel内嵌的VBA具有强大的后台数据库连接功能,可支持Oracle、SQL Server大型数据库系统,直接读取AC90、用友等财务系统后台数据库。本文在VBA编辑器工程中添加两个通用模块(SetUp Trial Balance,SetUp Pivot),如图1所示。
以下是生成会计科目试算平衡表的通用模块:
Option Explicit
Sub SetUpTrialBalance()
On Error Resume Next
ActiveWorkbook.Sheets.Add
Dim connstring As String
connstring=ODBC;DRIVER=SQL Native Client;SERVER=(local); UID=用户名;PWD=登录密码;Trusted_Connection=Yes;APP=Microsoft Office 2003;
WSID=;DATABASE=数据库名;//根据单位实际情况填入后台数据库连接用户名、密码以及数据库名。
Dim sqlstring As String
sqlstring =select * from 会计凭证表 where (年份=2006 or 年份=2005) and 月份=1//根据实际工作需要填入组合SQL查询语句,本文采用的示例是为说明清楚。
With ActiveSheet.QueryTables.Add(Connection:=connstring,Destination:=Range(A1),Sql:=sqlstring)
.Refresh
End With
Call SetUpPivot
End Sub
Sub SetUpPivot()
Dim r As Range
Range(A1).CurrentRegion.Select
Selection.Name=TrialBalance
ActiveWorkbook.Sheets.Add
Dim PTcache As PivotCache
Dim PT As PivotTable
Dim Prange As Range
For Each PT In ActiveWorkbook.ActiveSheet.PivotTables
PT.TableRange2.Clear
Next PT
Set Prange = Range(TrialBalance)
Set PTcache = ActiveWorkbook.PivotCaches.Add(xlDatabase,SourceData:=Prange)
Set P
文档评论(0)