第五讲:带你入门VBA
excel2003
2003vba
第一期: 初步了解VBA www.wendangwang.com
第二期:进阶操作VBA www.wendangwang.com
第三期:编制简单的自定义函数 www.wendangwang.com 第四期:如何控制工作薄和工作表 www.wendangwang.com 第五期:如何控制单元格 www.wendangwang.com
在VBA中,单元格常用的表示方法有两种:
一种是RANGE。如A1的表示方法是Range("a1"),A1:100的表法方法是: Range("A1:A100") 和以前一样,大家先在工作表中插入一个矩形作为执行宏的按纽,在按纽上单击右键,单击指定宏,再单击新建,在VBE窗口中的代码窗口输入Range("a1")=1000
Sub 矩形1_单击()
Range("a1")=1000 ’A1单元格的值为1000
Range("a1:a10")=1000 ’A1:A10的连续区域(10个单元格)的值都为1000
Range("b1:b10,c1:c10,e1:e10") = 1000 ’b1:b10,c1:c10,e1:e10的不连续区域(30个单元格)的值都为1000
End Sub
补充:Range可以代表一个单元格区域,也可以代表一个单元格。
Range("A1")表示工作表中的A1单元格;
Range("区域的左上角单元格:区域的右下角单元格")。表示一个连续区域;
Range("单元格区域1,单元格区域2.....") 表示不连续的单元格多个区域。
[A1]是Range("A1")的简写.二者在用法上没有什么区别,但在输入时有点不同,如当你输入
[A1]后加点时,后面不会出现属性和方法列表,而输入Range("A1")加点后则会出现属性列表供你选取
Union是求多个单元格区域的并集,用法是Union(单元格区域1,单元格区域2.....) 它返回的是所有区域的所有单元格集合
请运行下面的一句:Application.Intersect(Range("a1:a10"), Range("a3:c4")).Select
这一句的意思是选中区域A1:A10 和 A3:C4重叠的区域,即两个区域共有的区域,此名代码运行的结果是选中区域A3:A4
Select,它是单元格被选取的意思。在我们录制宏时,会出现大量的select,其实在程序中多数Select是多余的,它影响速度又会影响程序的运行。
如:Range("C16").Select ActiveCell.FormulaR1C1 = "100" Range("C11").Select
其实我只是在C16单元格中填入数值100,就会出现这么一大堆代码,这此代码可以优化为:Range("C16").="100"
注意Intersect 方法是一个非常实用的一个方法,比如我们在动态选取工作表Sheet1A列中已存在数据的区域时,就会用到它。在介绍这个用法前还要介绍一下另一个工作表中非常实用的属性:Usedrange
你可以选试着运行一下:Activecell.usedrange.Select
运行Activecell.usedrange.Select你会发现,在当前工作表中的所有用过的区域全被选中了。你明白了吗,其实usedrange就是工作表中所有已存在内容的矩形区域,为什么不说是存在内容的单元格呢?原因是比如你在一个空工作表中的B3和C5单元格任意输入一个数值,运行Activecell.usedrange.Select后选取的不只是B3和C5单元格,而是B3:C5单元格区域


