当前位置: 首页 > 审计论坛
运用Excel中VBA工具快捷筛选审计数据
信息来源:赣榆区审计局 发布日期:2020-08-06 浏览次数: 798 字号: [小] [中] [大]

审计中经常会采集到海量的业务数据,而业务数据一般为Excel表格,一张表中少则几百条,多则几万条数据,为了查询我们想要的结果,审计人员通常采取导入SQL的方式进行操作,导入前需要清洗、加工数据,把表格变成标准表格式再进行导入,费时费力,还容易出错。那么巧用Excel开发工具VBA为我们解决了这个问题。

首先介绍一下Excel开发工具VBA,Visual Basic for Applications(VBA)是visual basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是Microsoft office软件。

TIM图片20200805153714.png

其次再来看看Excel中原有的筛选功能,在excel表格表头部分会自动出现筛选的倒三角符号。

TIM图片20200805153729.png

下面列举查询有关项目和假定条件项目实例。

TIM图片20200805153737.png

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

显示结果:

TIM图片20200805153745.png

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

显示结果:

TIM图片20200805153752.png

说明:

1、参数field:指筛选的字段所在的列的数值。

2、参数criteria1和criteria2是两个指定的判断条件(为字符串形式)。参数criteria1是必需的,参数criteria2是可选项,两个条件的关系由operator决定。而参数operator是xltop10ltems等时,参数criteria1是指定项目数量。

3、参数operator,是指定筛选类型,为xlautofilteroperator常量之一。(赣榆区审计局 于嘉淼)

苏ICP备2023017687号 

苏公网安备 32070502010522号