VBA在环境监测数据统计中的应用
2014-11-19安贝贝蒋昌潭
安贝贝,李 灵,蒋昌潭
(重庆市环境监测中心,重庆401147)
环境监测数据统计需要对大量的环境监测数据进行处理,工作人员常常需要花费大量的时间完成数据计算、整理和校对,工作繁琐、重复性强。为了提高环境监测数据统计效率,本文以功能区噪声数据筛选为例,将excel中的Visual Basic for Application(简称VBA)应用在环境监测数据统计分析中。
1 VBA介绍
Visual Basic for Applications(简称VBA)是新一代标准宏语言,是一种面向对象的程序设计方法[1]。使用VBA可以使工作自动化;可以自定义EXCEL工具栏、菜单和界面;可以创建报表;可以对数据进行复杂的操作和分析等。
VBA集成开发环境是进行VBA程序设计和代码编写的地方,在Excel中通过“工具—宏—Visual Basic编辑器”进入VBA开发环境。
2 功能区噪声数据统计方法
在环境监测数据统计中,功能区噪声的计算方法相对复杂。各个功能区噪声监测数据需要先根据“声环境质量常规监测暂行技术规定”要求,利用公式 (1)分别计算出昼间 (Ld)和夜间 (Ln)等效声级,再按照《声环境质量标准》 (GB3096-2008)[2]对昼间、夜间等效声级进行独立评价。
式中:Leq(i)为白天 (06∶00—22∶00)16个小时中第i个小时的等效声级,Leq(j)为夜间(22∶00—06∶00)8 个小时中第 j个小时的等效声级。
3 VBA在功能区噪声数据统计中的应用
3.1 利用VBA计算功能区噪声昼间和夜间等效声级
对某个功能区噪声监测点建立表1所示的excel表,启动“宏”编辑器,首先定义全局变量,例如:Dim row As Integer。
(定义列变量),Dim Sumval_D As Double(定义昼间等效声级为浮点型变量),再对变量进行初始化:Sumval_D=0#,Sumval_N=0#等。
(定义整型循环变量),Dim Thecell As Range
根据公式 (1),利用幂函数 Application.WorksheetFunction.Power()和对数函数Application.WorksheetFunction.Log10()进行代码编写,结果如表2所示。
核心代码示范如下:
Sumval_D=0#
Sumval_N=0#
For row=1 To 6
通过对冲动性购买行为的相关文献进行归纳分析,发现现有文献的研究热点是消费者冲动性购买行为的影响因素,这方面的研究可以扩展出更多的具体研究情境下消费者的冲动性购买行为受什么因素的影响,同时,可以结合营销心理学方面的知识,研究消费者冲动性购买行为发生时其心理状态的变化。
Set Thecell=Range("B2").Offset(row-1,0)
Sumval_N=Sumval_N+Application.WorksheetFunction.Power(10,Thecell.Value*0.1)
Next row
For row=1 To 16
Set Thecell=Range("B8").Offset(row-1,0)
Sumval_D=Sumval_D+Application.WorksheetFunction.Power(10,Thecell.Value*0.1)
Next row
For row=1 To 2
Sumval_N=Sumval_N+Application.WorksheetFunction.Power(10,Thecell.Value*0.1)
Next row
Sumval_D =10* Application.Worksheet Function.Log10(Sumval_D/16)
Sumval_N =10* Application.Worksheet Function.Log10(Sumval_N/8)
3.2 利用VBA分别筛选出昼间和夜间等效声级最小的日期
在计算昼间和夜间等效声级的基础上,分别筛选出该测点昼间和夜间等效等级最小出现的日期,结果如图1所示。
首先利用excel“工具—宏”(或快捷键Alt+F8)新建“宏”,再新增一 Button按钮 (Private Sub CommandButton1_Click()End Sub),以方便今后直接执行该宏。
表1 功能区噪声原始数据表
表2 等效声级计算结果
核心代码示范如下:
For row=1 To 9
Set Thecell=Range("B29").Offset(0,row)
If minval>= Thecell.Value Then minval=Thecell.Value
If minval>= Thecell.Value Then mincol=Thecell.Column
Next row
MsgBox"昼间等效声级最小的日期"&Cells(1,mincol_D)&";"&"夜间等效声级最小的日期:"&Cells(1,mincol_N)
4 结论
针对环境监测数据统计中较为复杂的功能区噪声等效声级监测日期的筛选问题,利用Excel中的VBA编制宏代码能够方便快捷地实现。此外,Excel VBA使用简便,功能强大,能够解决环境监测工作中存在的数据量大,计算复杂繁琐等困难。
[1]赵志东.Excel VBA基础入门 (第2版)[M].北京:人民邮电出版社,2011.
[2]GB3096-2008.声环境质量标准 [S].
[3]徐浙峰,林树生,封龙.用EXCEL统计功能区噪声 [J].黑龙江环境通报,2006,30(3):94-96.