本帖最后由 excel交流 于 2017-9-20 03:50 编辑
VBA程序设计的最终目的是什么?更多的当然是为了处理数据。所以,这一贴,将来讲一讲用VBA处理单元格区域。当然,因为我知道的本身不多,所以,并不能把所有的东西都告诉你,我只是举一些简单的例子,供大家学习作参考用。
建议大家在读贴的过程中,动动手,亲自试一试,相信这样的亲身经历会给你的学习带来一定的帮助。
一、复制单元格区域
如果你感到无从着手,别忘了“录制宏”的功能。虽然录制宏生成的代码不是最有效的,但它生成的代码可以为我们提供很多的信息。
好了,闲话不说。自行录一段复制A1单元格到B1单元格的宏。打开VBE编辑器,得到如下代码:
- Sub Macro1()
- '
- ' Macro1 Macro
- ' 宏由 ggsmart 录制,时间: 2009-8-23
- '
- '
- Range("A1").Select
- Selection.Copy
- Range("B1").Select
- ActiveSheet.Paste
- End Sub
-
复制代码
除去注释的部分,实际上只有句代码。不用我细讲,大家已经知道它们的作用分别是:第一句选中A1单元格,第二句复制选中的单元格,第三句选中B1单元格,第四句粘贴。
但是,就像我们用VBA在单元格输入数据不用先选中它一样,我们同样可以在不选中单元格的情况下就执行复制粘贴命令。所以,以上的代码实际上我们可以简化为:
- Sub Macro1()
- Range("A1").Copy Range("B1")
- End Sub
-
复制代码
- Sub mycopy()
- Workbooks("book1").Sheets(1).[a1:a10].Copy _
- Workbooks("book2").Sheets(1).[b1:b10]
- End Sub
-
复制代码提示:一行的代码过长,可以用空格加下划线进行换行。
复制的区域过大时,对于目标区域,我们可以只指定一个单元格,这时它代表目标区域的左上角单元格。如上面的代码,我们可以写成这样:
- Sub mycopy()
- Workbooks("book1").Sheets(1).[a1:a10].Copy _
- Workbooks("book2").Sheets(1).[b1]
- End Sub
复制代码
- Sub mycut()
- [a1:a10].Cut [b1]
- End Sub
-
复制代码 三、删除单元格
删除一个单元格的命令也很简单,调用Range对象的Delete方法即可。同我们用鼠标操作一样,同样有四个选项,下面以删除A1单元格为例:
- [a1].Delete Shift:=xlUp ' 下方单元格上移
- [a1].Delete Shift:=xlToLeft ' 右侧单元格左移
- [a1].EntireRow.Delete ' 整行删除
- [a1].EntireColumn.Delete ' 整列删除
-
复制代码 只写成[a1].Delete时,默认为“下方单元格上移”。
道勤主机提供365天*24小时全年全天无休、实时在线、零等待的售后技术支持。竭力为您免费处理您在使用道勤主机过程中所遇到的一切问题!
如果您是道勤主机用户,那么您可以通过QQ【792472177】、售后QQ【59133755】、旺旺【诠释意念】、微信:q792472177免费电话、后台提交工单这些方式联系道勤主机客服!
如果您不是我们的客户也没问题,点击页面最右边的企业QQ在线咨询图标联系我们并购买后,我们为您免费进行无缝搬家服务,让您享受网站零访问延迟的迁移到道勤主机的服务! |