审计中经常会采集到海量的业务数据,而业务数据一般为Excel表格,一张表中少则几百条,多则几万条数据,为了查询我们想要的结果,审计人员通常采取导入SQL的方式进行操作,导入前需要清洗、加工数据,把表格变成标准表格式再进行导入,费时费力,还容易出错。那么巧用Excel开发工具VBA为我们解决了这个问题。
首先介绍一下Excel开发工具VBA,Visual Basic for Applications(VBA)是visual basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是Microsoft office软件。
其次再来看看Excel中原有的筛选功能,在excel表格表头部分会自动出现筛选的倒三角符号。
下面列举查询有关项目和假定条件项目实例。
1.筛选数据中凭证号为“JZ-12-0087”的列
代码如下:
Option Explicit
Sub test()
Dim Crit As Variant
Application.ScreenUpdating = False
With Worksheets("Sheet1")
If .FilterMode = True Then .ShowAllData
.Range("A1").AutoFilter Field:=4, Criteria1:="JZ-12-0087"
End With
Application.ScreenUpdating = True
End Sub
显示结果:
2.筛选数据中凭证号为“JZ-12-0087”,借方金额大于500以上,小于20000以下的列。
代码如下:
Option Explicit
Sub test()
Dim Crit As Variant
Application.ScreenUpdating = False
With Worksheets("Sheet1")
If .FilterMode = True Then .ShowAllData
.Range("A1").AutoFilter Field:=4, Criteria1:="JZ-12-0087"
.Range("A1").AutoFilter Field:=7, Criteria1:=">=500", Operator:=xlAnd, Criteria2:="<=20000"
End With
Application.ScreenUpdating = True
End Sub
显示结果:
说明:
1、参数field:指筛选的字段所在的列的数值。
2、参数criteria1和criteria2是两个指定的判断条件(为字符串形式)。参数criteria1是必需的,参数criteria2是可选项,两个条件的关系由operator决定。而参数operator是xltop10ltems等时,参数criteria1是指定项目数量。
3、参数operator,是指定筛选类型,为xlautofilteroperator常量之一。(赣榆区审计局 于嘉淼)