资源描述:
《《excel加vba在实验室内质量控制中的应用》》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Excel加VBA在实验室内质量控制中的应用韩波孙利(北海市环境监测中心站536000)摘要:针对《手册》各类质控图,应用Excel与VBA编制了一种科学严谨的人性化实验室质控图制作程序,通过程序创建和《手册》中的实例,向读者展示如何运用基于Excel内核的VBA编程方法来扩展Excel的功能,以实现质量控制中复杂的数据统计和图表的制作功能。关键词:ExcelVBA质量控制质控图《环境水质监测质量保证手册》[1](以下简称“手册”)对质量控制图在实验室质控中的应用主要有:单值质控图;均值—极差质控图;空白值质控图;回收率质控图。但是这项工作比较复杂烦琐。目前,
2、有文献[2,3]用Excel提供的函数功能进行处理,显然很难实现计算与制图自动化功能。通过分析,发现利用Excel提供的VBA(VisualBasicforApplication)功能,在工作表对象模块中编写一段Basic代码,即可方便地达到自动计算与制图的目的。这里,将实现各类质控图绘制的操作界面设置,对象模块中Basic代码和实例给出,以飨读者。1、创建程序1.1界面设置在空白工作表中(工作表名称为“sheet1”)添加四个控制按纽,如图1所示。按纽“计算”和“绘图”分别为计算质控图的统计参数和绘制质控图操作按纽,“重试”和“组合框”按纽分别为重新计算和选
3、择质控图类型操作按纽。具体步骤如下:(1)点击“视图”→“工具栏”→“VisualBasic”→“VB工具箱”(2)在打开的“VB工具箱”控件中依次选取3个控制按纽和一个组合框按纽,分别将它们放置工作表适当的位置。图1用户操作界面图2系数和符号存放表1.2控制系数和控制符号的存放为避免用户操作过程中查表后输入控制因子(A2、D3、D4)和控制限符号(UCL、UWL、UAL、CL、LAL、LWL、LCL),将其保存到工作表“Sheet2”中,如图2所示。1.3编写程序Basic代码1.3.1工作薄模块代码当程序工作薄打开时,事件Open被触发,执行Workboo
4、k_Open程序,该程序存放在thisWorkbook对象模块中。主要功能是激活操作界面,并使“绘图”、“重试”按纽失控,同时向组合框添加质控图选择对象。PrivateSubWorkbook_Open()Worksheets("sheet1").SelectSheet1.ComboBox1.List()=Array("空白质控图","单值-回收率质控图","极差质控图","均值极差值质控图")Sheet1.CommandButton2.Enabled=False:Sheet1.CommandButton3.Enabled=FalseSheet1.Command
5、Button1.Enabled=TrueEndSub1.3.2工作表模块代码(1)定义工作表模块所需的变量OptionExplicitDimrr,cc,i,j,tAsIntegerDimu(8),a2,d3,d4,n,ss1AsDoubleDimR_x(30),R1_x(30),绘图区域,R_区域,计算区域,x,ssAsDoubleDim控制符(8)AsString(2)CommandButton1(计算)按纽代码当用户输入质控样品分析数据后,单击“计算”按纽,则质控图的中心线和控制限等计算结果,按列方式就能显示出来。其程序首先获取输入数据的行数和列数,然后判
6、别用户选择的质控图类型,得到控制图控制限的指示值,并调用相应的质控图计算参数的子程序。空白值、单值与回收率质控图调用名为“x_s”子程序;极差、均值极差质控图调用名为“x_R”子程序,返回后再调用名为“显示值”子程序。PrivateSubCommandButton1_Click()cc=0:ss=0:j=1rr=Worksheets("sheet1").Range("A1").CurrentRegion.Rows.Countcc=Worksheets("sheet1").Range("A1").CurrentRegion.Columns.Countt=64+c
7、c计算区域="B2:"&Chr(t)&rr&""SelectCaseSheet1.ComboBox1.ListIndexCase0To3'平均值极差IfSheet1.ComboBox1.ListIndex=0Thenn=4:Callx_sIfSheet1.ComboBox1.ListIndex=1Thenn=7:Callx_sIfSheet1.ComboBox1.ListIndex=2Thenn=5:Callx_RIfSheet1.ComboBox1.ListIndex=3Thenn=7:Callx_REndSelectCall显示值CommandButton
8、1.Enabled=False:Com