VBA创建完美EXCEL举例[权威资料]_第1页
VBA创建完美EXCEL举例[权威资料]_第2页
VBA创建完美EXCEL举例[权威资料]_第3页
VBA创建完美EXCEL举例[权威资料]_第4页
VBA创建完美EXCEL举例[权威资料]_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

VBA 创建完美 EXCEL 举例 本文档格式为 WORD,感谢你的阅读。 VBA 确切地讲,是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案。在 Office 2000 中,宏语言 VBA 适用于所有应用程序,包括 Word 、 Excel、 PowerPoint、 Access、 Outlook 以及 Project,基于Excel、 Word 的 VBA 小程序更是不计其数,我们甚至还可以将EXCEL 用做开发平台实现应用程序。 【关键词】 Excel VBA 编程 导入数据 在 90 年代早期,每个需要自动化的应用程序都有不同的自动化语言,比如 EXCEL 的宏语言来使 EXCEL 自动化, WORD BASIC 使 WORD 自动化等等,这给人们学习使用各种应用程序带来不便,于是微软决定开发一种通用的自动化语言,这就是 Visual Basic For Application( VBA)。 VBA 使 Office 中的 Word、 Excel、 Access、Powerpoint 这些软件的应用更加高效,例如:通过一段 VBA代码,可以实现画面的切换;可以实现 复杂逻辑的统计(比如从多个表中,自动生成按合同号来跟踪生产量、入库量、销售量、库存量的统计清单)等。 VBA 针对特定软件时操作更灵活,最典型的是 excel 的 VBA,它可以直接引用 excel 函数,运行一些针对 excel 的指令, 使 excel 操作界面人性化,还可以迅速的实现多个步骤的手工操作。 1 用 excel 做开发平台实现应用程序的原因 在 excel 环境中基于应用程序自动化有哪些优点呢? 首先使用 VBA 可以实现的功能有自动化重复的任务、自定义excel 工具栏,菜单和界面、简化模板的使用、创建 报表及对数据进行复杂的操作和分析等等。其次用 excel 作为开发平台可以连接到多种数据库,由于 excel 界面大家都比较熟悉,它内置了大量函数再加上本身功能都比较强大,包括打印、文件处理、格式化和文本编辑等,这些都是我们自定义excel,使其成为开发平台的原因。 我们在用其他语言开发应用程序时,一些基本功能的模块,包括文件的打开和保存,打印,复制等都是需要自己去编写,而用 excel 作为开发平台,则由于 excel 已经具备这些基本功能,我们只需要使用它。 2 excel 的 VBA 编程功能举例 在 excel 中适当地使用 VBA 编程可以大大增强其交互功能,达到意想不到的效果,如:在 Excel 中应用 VBA 批量导入数据。 2.1 导入数据 我们要把一系列文本格式的数据文件导入到 Excel 中作为一条记录,也就是一行。那么,通过打开 Excel,然后开始录制宏,然后定位到需要的位置,读入需要的信息就可以了。首先打开文件,通过导入文本文件向导,读入数据,将特定单元格的数据拷贝到一个目标 Excel 文件中,然后关闭这个文本文件,停止录制宏。运行了一下这个宏,需要的数据都导进来了。 2.2 导入成批数据 怎么样把所有的数据文件都导入进来。比如一组“d*8.txt” 、 “d*9.txt” 、 “d*51.txt” 之类的文件,打开刚刚上面录制的宏,文件名最后 2 位从 46到 89,那么我们需要写一个 i 从 1 到 44的循环,把读入文件部分的文件名改为: d* ( i + 45 ) .txt把粘贴目的地( range)表示行数的数字用 i 替换。执行按钮,数据导入成功。 2.3 导入不同的文件的数据 通过一个打开文件对话框,选择一系列文件,然后将文件全路径存入 一个集合或数组,然后循环读出文件就可以了。首先创建了一个窗体,然后放置了一个按钮,将CommonDialog 控件引入工程,添加到窗体,在按钮的点击事件里加入如下代码: Dim strFiles As String, i As Long With CommonDialog1 .Flags = H200 H80000 可以选择多个文件 .ShowOpen If .FileName Then strFiles = .FileName End If End With 分割返回值,返回值为以 ASCII 码为 0 的分割的字符串 字符串第一个为路径,之后为单个文件名 Files = Split( strFiles, Chr( 0) For i = 1 To UBound( Files) Step 1 Files( i) = Files( 0) Files( i) 连接路径和文件名,组成文件数组 Next i 最后的文件列表保存在 Files 数组里。后面的部分就简单了。 For i = 1 To UBound( Files) Step 1 strFilename = Files( i) DoImport strFilename Next i 把原来的宏修改后保存在 DoImport 这个过程里,传入文件名即可导入这个文件,循环导入所有文件就可以了。 3 提高 VBA 程序运行效率的方法 Microsoft office 办公软件在我们的生活中得到了广泛应用,现在随着 office 办公软件的 版本不断提升,功能不断完善,在 office 办公软件平台上开发出的的 VBA 应用程序越来越多。但是 VBA 是一种宏语言,它的运行速度给我们带来了很大的限制。因此 VBA 编程的方法直接关系到 VBA 程序运行的效率,为了提高 VBA 程序运行效率,可以使用下面的一些的方法: 3.1 尽量使用 VBA 原有的属性、方法和 Worksheet 函数 在编程前我们应尽可能多地了解 excel 对象的属性、方法, excel 对象特别多,对应的它的属性、方法、事件就更加多了,如果我们不全部了解它们的话,可能在编程过程中经常编写与 excel 对象的属性、方法相同功能的 VBA 代码段,当然我们编写的这些代码段的运行效率显然与 excel对象的属性、方法完成任务的速度相差甚大。例如用 Range的属性 CurrentRegion 来返回 Range 对象,该对象代表当前区。(当前区指以任意空白行及空白列的组合为边界的区域)。而同样功能的 VBA 代码需数十行。 3.2 尽量减少使用对象引用,尤其在循环中 每一个 excel 对象的属性、方法的调用都需要通过 OLE接口的一个或多个调用,这些 OLE 调用都是需要时间的,减少使用对象引用能加快 VBA 代 码的运行。 3.3 减少对象的激活和选择 录制宏里面对象的激活和选择都用的比较多,例如Workbooks( XXX) .Activate、 Sheets( XXX) .Select、Range( XXX) .Select 等,事实上大多数情况下这些操作不是必需的。例如: Sheets( Sheet3 ) .Select Range( A1 ) .Value = 100 Range( A2 ) .Value = 200 可改为: With Sheets( She et3 ) .Range( A1 ) .Value = 100 .Range( A2 ) .Value = 200 End With 3.4 关闭屏幕更新 关闭屏幕更新是提高 VBA 程序运行速度的最有效的方法,可以缩短运行时间 2/3 左右。关闭屏幕更新的方法: Application.ScreenUpdate = False , VBA 程序运行结束时再将该值设回来: Application.ScreenUpdate = True。 参考文献 1李 政,梁海英,李昊 .VBA 应用基础与实例教程 M.北京:国防工业出版社, 2005: 46-136. 2吕洪升 .常见数值计算在 excel 的 VBA 中实现 J.巢湖学院学报, 2008. 3杨东远 .VBA 在 excel 水文数据处理中的应用 M.交通部天津水运工程科学研究所出版社, 2008. 作者单位 广东省工商高级技工学校 广东省韶关市 512200 阅读相关文档 :浅谈地理新教师前三年自身发展方向 关于建设 “ 书香校园 ” 的几点成功做法 依托行知理论推进家园互动 点滴谈 同在蓝天下 共享雨露情 班级管理策略 PTN 在城域传送网中的应用 班级文化建设 山重水复疑无路 柳暗花明又一村 BGP 路由协议在铁通互联网中的应用 基于 HMC833 的小数分频频率源设计 应用 Web 数据挖掘技术进行电子商务的分析 自动气象要素站维修实践 基于 PHM 的电子系统测试性设计与故障诊断技术 互联网技术与电信网技术研

温馨提示

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

评论

0/150

提交评论