您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页Excel宏功能简单应用介绍

Excel宏功能简单应用介绍

来源:爱go旅游网


Excel宏功能简单应用介绍

所谓宏,就是一组指令集,通过执行类似批处理的一组命令,来完成某种功能。Microsoft Office的组件都可以支持宏(Macro)的操作,而Office的宏是指使用VB Script指令集(VB编程语言的子集,可以使用VB的常用语句)编写的针对Office组件的小程序。利用宏,我们可以完成很多程序原本并不支持的特殊应用,比如完成某种特殊的数据计算,或者文档的特殊格式排版等等。下面,就让我们举个简单的例子,看看宏在Excel中如何应用。

有这样一个Excel表格,工作表Sheet1中的第2行的B列开始至D列的连续单元格中是一组共3个数据,第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列里面,也就是Sheet1的第2行数据在 Sheet2的B列里面被复制了4次为止。

编写宏只要有一点点简单的VB编程知识就可以了,并不一定需要很高深的编程技巧,很多时候我们需要的只是一些重复的操作,我们可以通过宏的录制功能来录制一次需要的操作过程,然后再对已经录制的宏进行简单的修改,就能得到所需要的宏了。

对于上面这个事例,实际上只是简单的复制操作,所以甚至连录制的工作都可以省掉了。因为所需要的操作是一个循环的过程,所以我们可以使用一个循环语句来编写程序,

这样只要写出一个完成的复制过程,一次循环就可以达到我们的目的了。循环判断的依据就是是否Sheet1的A列所有日期都复制过了,因为数据都是连续排列的,艘以我们可以把Sheet1的A列某个单元格是否有数据作为进入循环的条件,依次复制日期,直到A7这个没有数据的空单元格,循环结束,我们的工作也就完成了。至于循环里面的内容,我们同样再嵌套一个循环,只不过这次是判断第2行的数据是否全都复制完成了,在这个循环里面自然就是单元格数据和日期的复制了。

Sub Macro1()

Dim st1y

Dim st2y

Dim st1x

st1y = 3

st2y = 2

Do While Sheets(“Sheet1”).Cells(st1y, \"A\") <> \"\"

st1x = 2

Do While Sheets(“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

End Sub

上面就是我编写的这个宏的所有内容,让我再来详细说说每个命令的作用:

第一行的“Sub Macro1()”和最后一行的“End 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和2,代表他们分别是从第3行(Sheet1的日期是从A3开始的)和第2行

开始。

“Do While”就是我们整个程序中最重要的循环语句了,

“Sheets(\"Sheet1\").Cells(st1y, \"A\")”是代表的Sheet1这个工作表的某个单元格,Cells后的括号内就是单元格的坐标,格式是Cells(Y轴,X轴),那个A3这个单元格就应该表示为Cells(3, \"A\"),这里注意,字符和字符串常量都必须用引号括起来,另外,X周除了用字母标示以外,也可以使用对应的数字来表示。第一个循环就是判断是否在Sheet1的A列的某个单元格碰到了空白格,如果没有,就进入循环执行里面的程序。与这个“Do While”相对应的就是倒数第二行的“Loop”。

进入循环以后对st2x进行赋值,然后进入第二个循环,判断Sheet1的第2行是否遇到了空白单元格,没有的话就继续执行下面的程序。

之后就是按照规则对单元格内容进行复制,之后给变量增值,以便循环能够顺利的执行,直到完成所有的操作。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务