欢迎来到天天文库
浏览记录
ID:47012549
大小:31.01 KB
页数:3页
时间:2019-12-03
《Excel宏功能简单应用介绍》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Excel宏功能简单应用介绍所谓宏,就是一组指令集,通过执行类似批处理的一组命令,来完成某种功能。MicrosoftOffice的组件都可以支持宏(Macro)的操作,而Office的宏是指使用VBScript指令集(VB编程语言的子集,可以使用VB的常用语句)编写的针对Office组件的小程序。利用宏,我们可以完成很多程序原本并不支持的特殊应用,比如完成某种特殊的数据计算,或者文档的特殊格式排版等等。下面,就让我们举个简单的例子,看看宏在Excel中如何应用。 有这样一个Excel表格,工作表Sheet1中的第2行的B列开始至D列的连续单元格中是一组共3
2、个数据,第A列的第3行开始至第6行的连续单元格中是一组共4个日期,要编写一段宏来完成这样的工作:将Sheet1第2行的数据由左至右依次纵向复制到Sheet2的B列(从B2开始)中,然后将这组复制完的3个数据所在行的A列都填入Sheet1的A3单元格里面的日期,完成后重复之前的操作,将Sheet1第2行的数据再次复制到Sheet2的B列,这次是从上次复制的B列数据下面的空白单元格,也就是B5开始,然后再在这次复制的3个数据的左侧A列填入Sheet1的A4单元格的日期,这样反复循环,直到Sheet1的A列的所有日期都出现在了Sheet2的A列里面,也就是Shee
3、t1的第2行数据在Sheet2的B列里面被复制了4次为止。 编写宏只要有一点点简单的VB编程知识就可以了,并不一定需要很高深的编程技巧,很多时候我们需要的只是一些重复的操作,我们可以通过宏的录制功能来录制一次需要的操作过程,然后再对已经录制的宏进行简单的修改,就能得到所需要的宏了。 对于上面这个事例,实际上只是简单的复制操作,所以甚至连录制的工作都可以省掉了。因为所需要的操作是一个循环的过程,所以我们可以使用一个循环语句来编写程序,这样只要写出一个完成的复制过程,一次循环就可以达到我们的目的了。循环判断的依据就是是否Sheet1的A列所有日期都复制过了,
4、因为数据都是连续排列的,艘以我们可以把Sheet1的A列某个单元格是否有数据作为进入循环的条件,依次复制日期,直到A7这个没有数据的空单元格,循环结束,我们的工作也就完成了。至于循环里面的内容,我们同样再嵌套一个循环,只不过这次是判断第2行的数据是否全都复制完成了,在这个循环里面自然就是单元格数据和日期的复制了。 SubMacro1() Dimst1y Dimst2y Dimst1x st1y=3 st2y=2 DoWhileSheets(“Sheet1”).Cells(st1y,"A")<>"" st1x=2 DoWhileSheets(
5、“Sheet1”).Cells(2,st1x)<>"" Sheets(“Sheet2”).Cells(st2y,"B")=Sheets(“Sheet1”).Cells(2,st1x) Sheets(“Sheet2”).Cells(st2y,"A")=Sheets(“Sheet1”).Cells(st1y,"A") st1x=st1x+1 st2y=st2y+1 Loop st1y=st1y+1 Loop EndSub 上面就是我编写的这个宏的所有内容,让我再来详细说说每个命令的作用: 第一行的“SubMacro1()”和最后一行的“End
6、Sub”是整个宏的开始和结尾标志,Macro1就是这个宏的名字。 “Dim”是定义一个变量,“st1y”是我定义的Sheet1的Y轴坐标变量,同理,“st1x”就是Sheet1的X轴坐标变量,“st2y”自然是Sheet2的Y轴坐标变量了。 “st1y=3”这是一个赋值语句,下面的“Sheets("Sheet2").Cells(st2y,"b")=Sheets("Sheet1").Cells(2,st1x)”这句也是,它们的作用都是将等号后面的数值赋予给等号前面的变量,就是说,等号前面必须是一个变量而不能是常量。这里分别给st1y和st2y赋予初始值3和
7、2,代表他们分别是从第3行(Sheet1的日期是从A3开始的)和第2行开始。 “DoWhile”就是我们整个程序中最重要的循环语句了,“Sheets("Sheet1").Cells(st1y,"A")”是代表的Sheet1这个工作表的某个单元格,Cells后的括号内就是单元格的坐标,格式是Cells(Y轴,X轴),那个A3这个单元格就应该表示为Cells(3,"A"),这里注意,字符和字符串常量都必须用引号括起来,另外,X周除了用字母标示以外,也可以使用对应的数字来表示。第一个循环就是判断是否在Sheet1的A列的某个单元格碰到了空白格,如果没有,就进入循
8、环执行里面的程序。与这个“DoWhile”相对应的就
此文档下载收益归作者所有