欢迎来到天天文库
浏览记录
ID:9405843
大小:999.50 KB
页数:25页
时间:2018-04-30
《vba宏编程速成宝典》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、修订记录版本日期作者说明V1.02011-3-17jingpengtaoVBA基础教程,不用自己写代码,不用看懂代码也可以写出适合自己工作的宏。目录1.1第一部分:关键代码解释41.2第二部分:如何录制宏101.3第三部分:实例解释如果编写宏111.4第四部分:如何确定在哪个位置插入关键代码呢?211.5第五部分:如何调试宏211.6第六部分:分块合成VBA代码231.7第七部分:个人心得2625/25序:EXCEL在我们平时的生活工作中有着广泛和重要的应用,尤其是对于每天和大量数据打交道的人员更重要,但同时对大量数据的操作又显
2、得是那么的繁琐,一不小心就很容易出错,对于每天都需要用EXCEL做同样事情的人来说,要是能够有一种工具来自动做工作就好了。EXCEL宏就是一个解决此类问题的办法,编写好一个实用的EXCEL宏可以大幅度提高工作效率和质量,因此掌握宏编程显得尤为重要。但是并不是每个人都学过编程,都了解VBA语言,那么怎样才能快速学习和掌握应用宏呢?下面我就根据我个人的学习经验及理解来教大家如何学习VBA编程。不需要理解代码的含义,不需要知道哪一步操作是什么代码,只要你会复制粘贴,就能够写出EXCEL宏,提高你的工作效率。俗话说:“授之以鱼,不如授之
3、以渔”,所以替人写宏不如教给他方法,也方便各自修改。学完本教程,写一些简单的宏肯定可以。编写本教程的目的就是为了方便经常和数据打交道的同事朋友,能够各自根据需要编写自己的宏。备注:由于本教程V1、0版本只是针对从未接触过VBA语言及刚入门的人员编写的,并未涉及更详细的代码分析及条件语句,循环语句,数据语句等,将会在后期的版本更新中不断完善。由于编者水平经验有限,难免会有一些不足之处,还望多多包涵。25/251.1第一部分:关键代码解释1、DimstrAsStringstr=ThisWorkbook.Path&"***.xls"
4、Workbooks.Openstr代码解释:自动打开文件名为“***”,属性为xls的文件。同时xlsx,csv文件也可打开。实际应用:如果你的宏执行需要很多文件,那么就可以再一开始就先执行打开每个文件,如:DimstrAsStringstr=ThisWorkbook.Path&"日常数据模板.xls"Workbooks.Openstrstr=ThisWorkbook.Path&"临时表.xls"Workbooks.Openstrstr=ThisWorkbook.Path&"扰码分布表.xls"Workbooks.Open
5、str2、Windows("***.xls").ActivateWorkbooks("***.xls").CloseSaveChanges:=False代码解释:关闭文件名为“***”,属性为xls的文件等。其中SaveChanges:=False意为不保存直接关闭该文件,如果SaveChanges:=True,则表示保存之后再关闭该文件。实际应用:在执行完所有的代码之后关闭各个已打开的文件,对于需要保存数据的SaveChanges:=True即可,对于不需要保存数据的SaveChanges:=False。如:Windows("
6、日常数据模板.xls").ActivateWorkbooks("日常数据模板.xls").CloseSaveChanges:=FalseWindows("扰码分布表.xls").ActivateWorkbooks("扰码分布表.xls").CloseSaveChanges:=TrueWindows("临时表.xls").ActivateWorkbooks("临时表.xls").CloseSaveChanges:=False25/253、i=1While(Cells(i,1)<>"")i=i+1WendCells(i,1).Sel
7、ectActiveSheet.Paste代码解释:此段语句主要是对单元格进行判断,是否为空白,如果为空白,则执行粘贴。具体解释请看下图:假如你要把N个不同EXCEL的内容粘贴到一个新的EXCEL里,也就是汇总所有的数据。假如第一个EXCEL内容有13行,第二个EXCEL内容有18行,第三个EXCEL内容有20行,等等。也许你会说直接定位到单元格不行吗?当然,对于每天固定行数的EXCEL,是可以的,但是如果每天的数据都在变,今天第一个EXCEL有17行,第二天又变为10行,第二个EXCEL今天有20行,第二天变为25行,这样你就没
8、法使用固定的单元格定位粘贴数据了。因此就需要上面的代码。语句类型为While……Wend……While(Cells(i,1)<>"")Cells(i,1)当i=1,表示A1单元格,也就是当A1单元格不为空白的时候,执行i=i+1,也就是接着判断A2是不是空白,依
此文档下载收益归作者所有