VB与EXCEL相结合在测量中的应用
- 格式:pdf
- 大小:151.11 KB
- 文档页数:2
在实验室内质量控制中的应用Excel加VBA在实验室内质量控制中的应用韩波 孙利(北海市环境监测中心站 536000)摘要:针对《手册》各类质控图,应用Excel与VBA编制了一种科学严谨的人性化实验室质摘要控图制作程序,通过程序创建和《手册》中的实例,向读者展示如何运用基于Excel内核的VBA编程方法来扩展Excel的功能,以实现质量控制中复杂的数据统计和图表的制作功能。
关键词::Excel VBA 质量控制 质控图关键词质量控制图是实验室质量控制中重要的组成部分,可以量化和形象的描绘分析误差是否处于统计控制中,由于它具有成熟的数学理论和概率统计方法,已在实验室质量控制中得到了广泛的应用。
《环境水质监测质量保证手册》[1](以下简称“手册”)对质量控制图在实验室质控中的应用主要有:单值质控图;均值—极差质控图;空白值质控图;回收率质控图。
而建立质控图首先要对分析质量数据进行各项统计参数的计算,然后绘出质控图。
但是这项工作比较复杂烦琐。
目前,有文献[2,3]用Excel提供的函数功能进行处理,显然很难实现计算与制图自动化功能。
通过分析,发现利用Excel提供的VBA(VisualBasic for Application)功能,在工作表对象模块中编写一段Basic代码,即可方便地达到自动计算与制图的目的。
这里,将实现各类质控图绘制的操作界面设置,对象模块中Basic代码和实例给出,以飨读者。
1、创建程序1.1界面设置为使用户能随心所欲的控制质控图的制作流程,在空白工作表中(工作表名称为“sheet1”)添加四个控制按纽,如图1所示。
按纽“计算”和“绘图”分别为计算质控图的统计参数和绘制质控图操作按纽,“重试”和“组合框”按纽分别为重新计算和选择质控图类型操作按纽。
具体步骤如下:(1) 点击“视图”→“工具栏”→“VisualBasic”→“VB工具箱”(2) 在打开的“VB工具箱”控件中依次选取3个控制按纽和一个组合框按纽,分别将它们放置工作表适当的位置。
文章编号:1672-8262(2007)04-96-04 中图分类号:P209 文献标识码:B 利用VB 编程控制Excel 处理测量数据阳德胜33 收稿日期:2006—10—08作者简介:阳德胜(1971—),男,测绘工程师,从事道路勘测工作。
(广东省公路勘察规划设计院,广东广州 510507)摘 要:介绍了利用VB 610编程控制电子表格Excel 处理测量数据的编程方法与技巧,从而实现测量数据处理可视化和制表自动化,提高了测量数据处理的效率和准确性。
关键词:VB;Excel;编程;测量数据1 引 言VB 是人们常用的一种高级程序设计语言,利用VB 开发的程序可作为OLE (Object linking and e mbed 2ding )容器。
Excel 作为一种非常普及的办公自动化软件,可以用作OLE 服务器,向外部输出某些属性、方法和事件。
通过OLE 自动化,VB 程序可以调用Excel 的功能,因此,可以利用VB 编程控制Excel 处理测量数据。
本文以公路测量数据处理为例介绍这方面的一些编程方法和技巧。
2 VB 与Excel 链接VB 与Excel 的链接步骤和常用命令如下:(1)打开VB6.0,进入VB 程序设计界面,从下拉菜单“工程”中选择“引用”,进一步选择“M icr os oft Ex 2cel 910Object L ibrary ”,再选择“确定”,表示在工程中要引用Excel 类型库。
(2)在通用对象的声明过程中定义Excel 对象:D i m excel1A s Excel .App licati on D i m excel1Book A s Excel .Work Book D i m excel1Sheet A s Excel .Worksheet(3)创建Excel 对象SET excel1=Create Object (“Excel .App licati on ”)(4)建立一个新Excel 工作簿文件Set excel1Book =excel1.Workbooks ().Add……excel1Book .SaveA s [路径]\“文件名”(5)打开一个旧Excel 工作簿文件Set excel1Book =excel1.Workbooks .Open ([路径]\“文件名”)(6)设置Excel 对象可见(或不可见)excel1.V isible =True (False )(7)增加Excel 工作表,并命名Sheets .AddSet excel1Sheet =excel1Book .Worksheets ("sheet n")Sheets ("Sheet n").SelectSheets ("Sheet n").Na me ="工作表名"(n 表示第n 个工作表)(8)设置Excel 工作表Set excel1Sheet =excel1Book .Worksheets ("工作表名")(9)给工作表单元格(r ow,col )赋值excel1Sheet .Cells (r ow,col )=值或算式(10)读工作表单元格(r ow,col )的值Sheets ("工作表名").Select X =excel1Sheet .Cells (r ow,col )(11)保存Excel 工作簿Active Workbook .Save(12)退出Excelexcel1.Quit(13)交还控制权给Excelset excel1=nothing3 利用VB 程序控制Excel 制表打开Excel,选择“工具\宏(M )\录制新宏(R )”,按常规方法制表,再选择“停止录制”,然后对所录制的内容进行分析,就可以获得绘制各种Excel 表格的方法和命令,将录制的内容复制插入VB 程序中,在执行程序的过程中,将自动生成所设计的Excel 表格。
EXCEL VBA 在测量中的应用作者:阳纯良来源:《科学与财富》2020年第20期一、VBA简介Visual Basic for Applications(VBA)是 Visual Basic 的一种宏語言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
主要能用来扩展 Windows 的应用程序功能,特别是 Microsoft Office 软件。
在测量中常应用 EXCEl 软件进行处理数据,使用VBA 能提高工作效率,保证准确性。
EXCEl 软件具有使用广泛,操作简单,输入数据简单,在我们测量工作日常中是不可缺少的工具,使用 EXCEl VBA 程序对我们工作如虎添翼,大大简化了大量繁重的重复工作,实现自动化。
以下通过一个小程序,介绍EXCEl VBA 在测量工作中的应用。
二、使用VBA展坐标点把现场实测坐标点展到 CAD 图是我们测量人员最常见的工作任务,在平时测量中我们经常要对实际地物画成 CAD 电子图,需要把现场采的点展到CAD 图上然后根据实际地物外形连接成线,画出地物的外轮廓。
这项工作虽然简单,但是需要我们测量人员细心,坐标数字多,很容易看串行,输入时要细心认真核对才能保证数据准确性,一旦坐标点过多,是一种繁重、乏味的重复工作,极易出错。
一般常规方法是我们直接打开 CAD 用point 命定直接展点,一个接一个输入,工作效率底下。
这种重复的劳动我们使用 EXCEl VBA 轻松解决,提高工作效率。
我们以 office2007和 AutoCAD2008软件作为演示软件,需要安装 Au- toCAD2008、office2007。
首先打开 EXCEL 然后使用快捷键 Alt+F11即进入VBAIDE,打开 VBA 界面,在菜单上依次点击[插入]→[模块],就可以进行代码编辑。
代码如下:Sub ZDApp()On Error Resume Next’忽略错误Set acadApp = GetObject(, "AutoCAD.Application")’检查是否打开 CAD If Err ThenErr.ClearMsgBox " 未检测到打开的 AutoCAD 绘图环境!"Set acadApp = CreateObject("AutoCAD.Application")’打开 CAD 软件End IfSet acaddoc = acadApp.ActiveDocument’定义 CAD 绘图文件 Set MSpace =acaddoc.modelspace’定义 CAD 绘图空间 acadApp.Visible = TrueDim myline As Object Dim mytxt As Object Dim mydoc As Object Dim mylist() As DoubleDim myli(0To2) As DoubleSet myrange = Worksheets(1).Range("B:B")i = Application.WorksheetFunction.Count(myrange) ReDim Preserve mylist(0To2* i -1)’重新定义数组 For j =2To i +1mylist((j -2) *2) = Cells(j,3)’从 C2单元开始读取X 坐标mylist((j -2) *2+1)= Cells(j,2)’从 B2单元开始读取X 坐标myli(0) = Cells(j,3)myli(1) = Cells(j,2)Set mytxt = MSpace.AddText(Cells(j,1), myli,1)’绘制点号NextSet myline = acaddoc.modelspace.AddLightWeightPolyline(mylist)’绘制成多段线End Sub点击保存,在 excel 工作表1中从 B2单元格输入 X 坐标,从 C2单元格输入 Y 坐标运行ZDApp 程序,cad 中绘出所输入坐标点。
Excel vba在工程测量课程实训中的应用摘要:在工程测量实训教学过程中,学生人数多,测量计算结果没有标准答案,计算量大,用传统的计算器方法计算非常烦琐,且很容易出错。
本文利用微软Office软件excel 的vba编程功能,就可以准确无误快速完成水准测量外业和内业计算工作,提高了工作效率。
关键词:Excel vba代码;快速;高效;准确在工程测量专业学生实训考试闭卷工作中,由于学生人数较多,学生的测量结果不象其它考试一样有标准答案,测量数据互不相同,这就给阅卷工作增加了很大的计算工作量。
如果用传统的笔算或计算器计算,计算时间长并且很容易出错,我在历届学生测量实训考试闭卷工作中,通过使用excel vba编程,把原本要计算半天的工作量,鼠标一点即可完成,既快速又准确,工作高效而轻松。
下面以变动仪器高法测量闭合水准路线为例,说明利用excel vba代码进行工程测量外业和内业计算的过程。
1、绘制外业和内业计算表格,填写外业测量数据打开excel在sheet1中绘制如下内外业计算表格并填写外业测量数据。
2、编写vba代码2.1 编写计算代码在excel“开发工具”中打开“visual basic”编辑器,点击“插入”、“模块”,双击“模块”编写如下计算代码:Sub 计算()Dim i%,m%,n%For i = 4 To 15 Step 2Cells(i,6)= Cells(i,4)- Cells(i + 1,5)NextFor m = 4 To 15 Step 4If Abs(Cells(m,6)- Cells(m + 2,6))> 0.005 ThenCells(m,7).SelectWith Selection.Font.Color = -16776961End WithEnd IfCells(m,7)= Cells(m,6)- Cells(m + 2,6)Cells(m,8)=(Cells(m,6)+ Cells(m + 2,6))/ 2 Next[d25] = [h4][d27] = [h8][d29] = [h12][d31] = [h4] + [h8] + [h12]If Abs([d31])> 0.021 Then[d31].SelectWith Selection.Font.Color = -16776961End WithEnd If[d32] = "fx=[d31]"[d33] = "fx容=12√3=20.784"For n = 25 To 29 Step 2Cells(n,5)= -Cells(31,4)/ 3Next[e31] = [e25] + [e27] + [e29]For o = 25 To 29 Step 2Cells(o,6)= Cells(o,4)+ Cells(o,5)Next[f31] = [f25] + [f27] + [f29]For p = 25 To 29 Step 2Cells(p + 1,7)= Cells(p - 1,7)+ Cells(p,6)Next[h33] = [c1]End Sub2.2 插入计算按扭在excel表“开发工具”中“插入”表单控件,改名“计算”并指定宏“计算”,点击“计算”按扭即可瞬间完成外业和内业计算2.3 编写“保存并清除”代码在excel“开发工具”中打开“visual basic”编辑器,点击“插入”、“模块”,双击“模块”编写如下“保存并清除”代码:Sub 保存并清除()Dim a%[h33] = [c1]If Cells(Rows.Count,8).End(xlUp)= [h23] ThenMsgBox "填写学号"GoTo 100End IfIf Sheet2.Cells(Rows.Count,8).End(xlUp)= Sheet1.[c1] ThenMsgBox "已经保存过了"Elsea=Sheet2.Cells(Rows.Count,2).End(xlUp).RowRange([b2],[h33]).Copy Sheet2.Cells(a + 2,2)End If[c1:e1,d4:h15,d25:h33].SelectWith Selection.Font.ThemeColor = xlThemeColorLight1End With[c1:e1,d4:h15,d25:h33].ClearContents100:End Sub2.4在excel表“开发工具”中“插入”表单控件,改名“保存并清除”并指定宏“保存并清除”,点击“保存并清除”按扭即可将外业和内业计算结果保存至sheet2工作表中并清除sheet1中的内容,如此循环进行,所有同学的测量成果均保存至sheet2工作表中。