在工作表的左侧边,我们可以看到每一行的行号,在工作表的上方,我们可以看到代表每一列的列字母,因此在工作表中,我们可以很容易知道当前活动单元格处在哪一行哪一列,或者当前活动单元格处在某单元格区域的位置。然而,在VBA中,我们如何知道我们所操纵的单元格的位置呢?这就是下面我们将要介绍的内容。
从Rows属性和Columns属性说起
在看看Excel的那些常用对象中,我们介绍过Rows属性和Columns属性,在VBA中使用这两个属性可以表示整行或整列组成的区域,也可以表示单元格区域中的行或列。举一些例子来说明。
Rows代表工作表中的所有行,因此下面的代码:
Rows.Select
将选择当前工作表中的所有行。
看看下面的两行代码:
Range(“A1:C5”).Rows.Select
Range(“A1:C5”).Select
都会选择当前工作表中的单元格区域A1:C5,似乎第一行代码中的Rows有点多余,但再深入分析,就会发现第一行代码是以单元格区域行为对象的角度来进行操作的,而在很多操作中,这正是我们所需要的,例如我们需要对单元格区域逐行进行操作的情形。
Columns属性的使用与Rows属性相同。
Row属性
使用Row属性可以返回单元格所在行的行号,或者单元格区域中第一行所在的行号。看看下面的代码:
Range(“B2”).Row
返回数值2,表示单元格B2处于工作表第2行。
Range(“C3:E5”).Row
excel初步应用单元格格式
没有对单元格进行格式操作的工作表是平淡无奇的,缺乏表现力,也辜负了Excel为我们准备的大量格式排版功能。因此,我们通常会对单元格进行一些格式排版操作,例如将表头字体加粗并设置不同的背景色、使用颜色突出显示需要关注的单元格等,从而制作出一张漂亮的工作表,让工作表生动起来。 前面介绍文章的中已经接触过使用VBA格式单元
返回数值3,表示单元格区域C3:E5的第一行处于工作表的第3行。
咋一看,你可能会疑惑,这不是很明显吗,从单元格的表示就可以看出单元格B2就在第2行,而单元格区域C3:E5的第一行就在工作表的第3行。但是,计算机不会这么看,所以它不知道,需要你使用代码告诉它。特别是使用变量代表单元格时,更需要这样了。
示例:如下图所示的工作表,将单元格区域A1:C10中偶数行的字体加粗。
代码如下:
Sub testRow()
‘声明单元格对象变量
Dim rngRow As Range
‘遍历单元格区域A1:C10行
For Each rngRow InRange(“A1:C10”).Rows
‘如果是偶数行则将字体加粗
If rngRow.Row Mod 2 = 0 Then
rngRow.Font.Bold = True
End If
Next rngRow
End Sub
Column属性的用法与Row属性相似,在此不再哆嗦。
到达想要的单元格——Offset属性
在详细介绍本的内容前,我们先轻松一下。 据说,在我家的院子里藏着很多金银珠宝。你一定想知道藏在哪儿吧,告诉你,就在院子里的一棵树下。当你兴冲冲地跑到院子里准备挖宝藏时,傻眼了,因为我家院子太大,几乎种了上百棵树,究竟在哪棵树下呢?珠宝的诱惑力太强了,你决定挨个树找,够你找的了……但是,如果我告诉你,在我家院子里有一棵