VBA在统计中运用浅尝.doc_第1页
VBA在统计中运用浅尝.doc_第2页
VBA在统计中运用浅尝.doc_第3页
VBA在统计中运用浅尝.doc_第4页
VBA在统计中运用浅尝.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VBA在统计中运用浅尝广汉市新丰小学 王益树摘要:办公中往往要遇到重复的数据收集,但如果使用复制、粘贴的办法会繁琐而易出错,机器也吃不消,运用VBA可能获得事半功倍的效果。关键词:VBA 数据自泰勒时代开始,数学与统计在生产管理科学的不断进步中就一直居于支配地位。作为一名涉及有关数据统计人员,不但需要学习各种先进的管理理念,更需要学习这些理念的实战应用方法。本次在针对“国家学生体质健康标准数据管理”数据处理时,尝试运用VBA来进行统计,使用我再次认识到它的便利,大大提高了工作效率。工作情况:本校共27个班,900百余人,每收集数据20余项。如(图一) (图一)工作思路:首先生成以班为单位含个人信息的独立表格;其次分发给每位体育教师进行填写;最后收集汇总。首先,在全校学生信息中写入VBA代码:Option ExplicitSub ExtractReps()Dim ws1 As WorksheetDim wsNew As WorksheetDim rng As RangeDim r As IntegerDim c As RangeSet ws1 = Sheets(Sheet1)Set rng = Range(Database)extract a list of Sales Repsws1.Columns(C:C).AdvancedFilter _ Action:=xlFilterCopy, _ CopyToRange:=Range(V1), Unique:=Truer = Cells(Rows.Count, V).End(xlUp).Rowset up Criteria AreaRange(X1).Value = Range(C1).ValueFor Each c In Range(V2:V & r) add the rep name to the criteria area ws1.Range(X2).Value = c.Value add new sheet and run advanced filter Set wsNew = Sheets.Add wsNew.Move After:=Worksheets(Worksheets.Count) wsNew.Name = c.Value rng.AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Sheets(Sheet1).Range(X1:X2), _ CopyToRange:=wsNew.Range(A1), _ Unique:=FalseNextws1.Selectws1.Columns(V:X).DeleteEnd Sub 执行后生成(图二)(图二) 再把每一个工作簿生成独立的EXCLE文件,写入VBA代码:Sub 另存所有工作表为工作簿()Dim sht As WorksheetApplication.ScreenUpdating = False 禁用屏幕刷新ipath = ThisWorkbook.Path & 当前工作簿的文件目录For Each sht In Sheets sht.Copy ActiveWorkbook.SaveAs ipath & sht.Name & .xls (工作表名称为文件名) ActiveWorkbook.CloseNextApplication.ScreenUpdating = True 恢复屏幕刷新End Sub执行后生成(图三)(图三) 其次,把生成的文件分发给每位填写人员,进行数据数据录入,核对。 最后,在空表中写入VBA代码:Sub Silent_open1() Dim MyPath, MyName, AWbNameDim Wb As Workbook, WbN As StringDim G As Long, J As LongDim Num As LongDim BOX As StringMyPath = ActiveWorkbook.PathMyName = Dir(MyPath & & *.xls)AWbName = ActiveWorkbook.NameNum = 0BOX = InputBox(请输入您要合并的工作表号,以阿拉伯数值为准。 & Chr(13) & Chr(13) & _如要合并工作簿的第2张工作表,则输入“2”。 & Chr(13) & Chr(13) & _默认值为“1”。, 输入, 1)If BOX = Then Exit SubElseIf IsNumeric(BOX) = False Then MsgBox 请输入数值型数据。, vbCritical, Error Exit SubElseIf Val(BOX) Int(Val(BOX) Then MsgBox 请输入整数。, vbCritical, Error Exit SubElseIf Val(BOX) 255 Then MsgBox 输入数据超过工作表的最大取值范围。, vbCritical, Error Exit SubEnd IfApplication.ScreenUpdating = FalseJ = BOXDo While MyName If MyName AWbName Then Set Wb = Workbooks.Open(MyPath & & MyName) Num = Num + 1 With Workbooks(1).ActiveSheet G = Sheets.Count If J G Then Wb.Close False Application.ScreenUpdating = True MsgBox 您所输入的值超出工作簿 & Chr(13) & MyName & Chr(13) & _ 的工作表范围,因此强制推出。, vbCritical, Error Exit Sub End If .Cells(.Range(A65536).End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4) Wb.Sheets(J).UsedRange.Copy .Cells(.Range(A65536).End(xlUp).Row + 1, 1) WbN = WbN & Chr(13) & Wb.Name Wb.Close False End With End If MyName = DirLoopRange(A1).SelectApplication.ScreenUpdating = TrueMsgBox 共合并了 & Num & 个工作薄的第 & J & 张工作表。如下: & Chr(13) & WbN, vbInformation, 提示End Sub 执行(图四) 显示(图五) (图五)最后生成(图六),导入生成数据到“国家学生体质健康标准数据管理”,完成任务。(图六)VBA的运用,使得工作变得轻松,避免了通过复制、粘贴完成任务此任务时造成的机器运行困难,人为操作不当时数据在过程中的丢失或错误,也为下次更好完成工作任务而做好准备。参考文献:(1)Excel 2003高级VBA编程宝典(2)Excel 2003与VBA编程从入门到精通(中文

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论