首页 > 代码库 > VBA学习笔记之单元格

VBA学习笔记之单元格

‘单元格对象在VBA中一个非常基础,同时也很重要的。
‘它的表达方式也是非常的多样化。
‘----------------------------------------------------
‘Range 对象
‘代表某一单元格、某一行、某一列、某一选定区域(该区域可包含一个或若干连续单元格区域),或者某一三维区域。

‘Range ("文本型装单元格地址")

‘range的常见写法
Sub rng()
Range("a1").Select         ‘单元格
Range("a:a").Select        ‘列
Range("1:3").Select       ‘行
Range("a1:b10").Select     ‘相邻区域
Range("a1:d7 c4:e8").Select  ‘不相个邻区域(同时选择多个不同区域按住CTRL选择)
End Sub

  Range("a1:d7 c4:e8").Select 注意这里d7后面是空格表示取二者区域的交集若为逗号,则是取二者区域的并集

‘写法:Range ("文本型装单元格地址1","文本型装单元格地址2")
‘range的变化写法
Sub rng变化()
Range("a1:b10").Select ‘一般写法
Range("a1", "b10").Select ‘变化写法1
Range(Range("a1"), Range("b10")).Select ‘变化写法2
Range("a1") = 123
End Sub

‘注意:
‘1.如果在range前没有指定工作表,则默认为活动工作表
‘2.如果对象不是活动工作表(如活动图表),则上面的代码也会出现错误

Sub 单元格对象例子()
Debug.Print Range("a:a").Count ‘计数工作表最大的行数
Debug.Print Range("1:1").Count ‘计算工作表最大的列数
Debug.Print Application.CountA(Range("a:a")) ‘计算工作表已使用的行数  ‘CountA计算有多少个非空单元格’
Debug.Print Application.CountA(Range("1:1")) ‘计算工作表已使用的列数
End Sub

  下面是动态单元格的引用(事先不清楚要引用的单元格)(用变量代替)

‘1.range("地址区域").range("地址区域")
Sub 序号表示法()
Range("b2:d4").Range("b2").Select ‘相对引用的写法‘
‘参照前一个range的左上单元格
End Sub

‘2.range地址区域中支持变量
Sub range的变量支持()
Dim a%
a = 3
Range("a" & a).Select
Range("c3:e5")(2).Select
End Sub

Sub 实例1动态选单元格或区域()
Dim i%
i = Application.CountA(Range("c:c")) ‘找到c列中已使用的最后一个单元格位置
Range("c" & i).Select ‘选择C列最后一格
Range("a1", "c" & i).Select ‘选择A1到C列的最后一格(方法一)
Range("a1:c" & i).Select ‘选择A1到C列的最后一格(方法二)
‘小结:动态单元格区域的定位,可以应用到单据的保存等实际工作中
End Sub

 

 

Range的引用:

技术分享

 

Sub test()
Range("a1:c3")(3).Select
Range("a1:c3")(4).Select
End Sub

  结果第一次选择的是C1,第二次选择的是A2

总结:range(......)(number)引用的顺序是从左往右,然后从上往下,并且number是对前面区域的相对位置的引用,当然number可以为(2,3)这样的坐标

即:number是相对引用,并且有一定顺序

 

VBA学习笔记之单元格