APP下载

浅谈VBA在集团型企业资产集中管理中的应用

2020-10-27钱永江

中国管理信息化 2020年15期
关键词:台账

钱永江

[摘    要] 企业在实际经营过程中,对于价值较高的重要资产必须加强监管。企业一般通过购入管理软件(OA)作为管理工具实现监管目标。但外购软件往往与企业实际期望存在较大出入,而且存在二次开发费用及日常维护费用较高的现实问题。文章应用Excel VBA语言,开发一款与企业实际契合度较高、人机交互的资产管理台账,不但能最大限度地节约公司经费,而且能满足公司日常管理需要,实时更新管理功能。

[关键词] 资产集中管理;台账;VBA;EXCEL函数

doi : 10 . 3969 / j . issn . 1673 - 0194 . 2020. 15. 035

[中图分类号] F234    [文献标识码]  A      [文章編号]  1673 - 0194(2020)15- 0080- 03

0      前    言

集团公司财务人员在日常工作中,需要经常登记一些集团OA或财务系统无法记载的信息,比如登记集团公司下的定期存单的台账(所属子公司、存单号、存入信息、到期日、支取信息等),集团公司租赁房产的租赁台账,集团公司下贷款信息台账等。在这些极具个性化的资产(负债)管理活动中,如直接应用软件开发服务商提供管理软件,不仅不够经济,而且后续提升改良频繁。如仅用Excel登记,其修改的随意性较大且无过程痕迹,安全性不佳。笔者在实际工作中,通过编制VBA程序,定制相关资产的管理台账。既提高财务人员的资产(负债)管理能力,又能以最经济的方式提高办公效率。

通常在Office-Excel的工作簿里自带VBA工作环境,本文以Excel 2007版本为基础,通过举例介绍集团金融资产集中管理台账的部分控件及代码,实现相关信息的保存、查询、修改与打印功能。

1      金融资产集中管理台账设计思路与功能要求

1.1   设计思路

一般需要通过辅助台账登记相关信息的金融资产包括定期存单、承兑汇票等。本文仅以定期存单为例,介绍构建此类金融资产管理台账的思路、所需的功能控件及其代码。

构建思路:通过新增(支取)凭单的方式实现对金融资产的管理,一个系统编号对应一份定期存单,实现对存单的存取、查询管理及打印功能。系统编号具有唯一性,以计算机系统日期(8位)+(C 或Z)+后缀序号形式编码。其中C表示存入,Z表示支取。1.2   金融资产管理台账的功能要求

具备金融资产信息录入、存储、修改、查询、提取等功能;实现查询信息的汇总功能;查询过程中,具备基本的人机交互功能;实现查询表单的打印功能。

在同一工作簿下建立两个工作表:一个前台工作表用于登记、修改及查询功能;另一个后台工作表用于存放数据(为避免随意修改本后台数据,本表宜深度隐藏,visible=2)。

输入的简易界面如图1所示。

查询具有某一共性信息的报表界面如图2所示。

2      主要功能控件的代码

2.1   “新增”功能控件代码

新增功能控件主要是实现所录入的金融资产信息的存储功能,代码如下:

Private Sub CommandButton1_Click()

Dim j%, i%, x%

j = Sheet1.[a65536].End(xlUp).Row

x = Sheet3.[a65536].End(xlUp).Row

Sheet1.[c2] = "存入存单登记!"

If MsgBox("确定保存?", vbOKCancel) = 1 Then

For i = 4 To j

If Left(Sheet3.Cells(x, 2).Value, 8) = Format(Now, "yyyymmdd") Then

Sheet1.Cells(i, 7) = Left(Sheet3.Cells(x, 2).Value, 8) & "C" & Format(Right(Sheet3.Cells(x, 2).Value, 2) + 1, "00")

Else

Sheet1.Cells(i, 7) = Format(Now, "yyyymmdd") & "C01"

End If

For k = 1 To 6

Sheet3.Cells(x + 1, 1) = Sheet1.[B2]

Sheet3.Cells(x + 1, 2) = Sheet1.Cells(i, 7)

Sheet3.Cells(x + 1, k + 2) = Sheet1.Cells(i, k)

Next k

x = x + 1

Next i

Sheet1.Cells(j + 1, 1) = "合计:"

Sheet1.Cells(j + 1, 3) = WorksheetFunction.Sum(Sheet1.Range("c4:c" & j))

If MsgBox("已保存" & j - 3 & "条记录!" & Chr(13) & "是否新增新的记录?", vbOKCancel) = 1 Then

Sheet1.Range("b2:f2,A4:g" & j + 1).ClearContents

猜你喜欢

台账
叶立东:村支书的“新台账”
企业电子统计台账问题研究
工作落实,一本台账起什么作用?
靖边规范基层党建工作台账
韩雪峰的“台账”
ERP系统的设备创建及台账管理