乐于分享
好东西不私藏

跟我学Excel VBA】第十七课:单元格的那些事,你全都知道?

跟我学Excel VBA】第十七课:单元格的那些事,你全都知道?

        今天,我们换种方式!

        以下内容,绝对是基础,纯基础!

        不信,我们走着瞧!

        Excel的三大元素:工作簿、工作表和单元格,是我们学习及运用Excel最基本的三大对象,而单元格对象是其中最最频繁操作的对象,没有之一。

        为了方便一些基础学员,今天打算普及一些关于单元格的一些代码。

1、单元格的常用表示方式

       * 如果我们要表示A1这个单元格,我们有以下几种常用的表示方式(不常用的也就不提了)

 Range(“a1”):双引号内,字母不区分大小写,数字1可以用变量表示,用如下方式Range(“a” & 1),其中1替换成变量,用于循环中;

Cells(1,1)或者Cells(1,”a”):同样的,字母不区分大小写,数字均可以用变量替代,用于循环中;

        * 如果我们要连续区域A1:E5,可以用以下几种表示方式,至于用哪种,取决于当时的实际情况和你的习惯:

   Range(“a1″,”e5″)或者Range(cells(1,1),cells(5,”e”))

        Range(“a1:e5”)

        * 不连续区域的表示方式

Range(“a1,d1:e6,f8”)

2、单元格的偏移和扩张

        * 如果我们要表示单元格A1右边第三个单元格下面的第一个单元格(即D2,可以理解为向右偏移三个单元格并同时向下偏移一个单元格),可以用如下代码:

   Range(“a1”).Offset(1,3):Offset属性表示单元格的偏移,前行后列

        * 如果我们想表示从单元格A1开始向右的四列且同时向下的两列所表示的单元格区域(即A1:D2),可以用如下代码:

 Range(“a1”).Resize(2,4):Resize属性表示单元格的扩张,前行后列

3、以某行或者某列为基准,确定数据区域最后一列或者最后一行的位置。在工作中,我们虽然可以使用CurrentRegion属性确定数据的矩形区域或者用UsedRange来确定使用的区域,但这些都有可能不能完全取得或者会过多取得数据有效区域,这样以来会导致我们的运行结果出错或者占用运行时间。

        一般来说,我们定制的VBA程序都是为某个特定的环境下编写的,那些数据的基本结果是固定的。哪一列可以取得所有数据的最后一行的行号或者哪一行可以取得数据最后一列的列号(一般是标题行)都是已知的。

        * 表示最后一行的行号:

       Dim iLastRow As Integer

iLastRow = .Range(“s” & .Rows.Count).End(xlUp).Row ‘取得S列最后一行的行号

        * 表示最后一列的列号:      

       Dim lLastColumn As Integer

 lLastColumn = .Range(“xfd4”).End(xlToLeft).Column  ‘取得第4行最后一列的列号,如果是使用的2003或者以前的版本,XFD需要改成IV;

        事实上,表示最后一行的行号是模拟的Ctrl+上箭头;而模拟最后一列的列号是模拟的Ctrl+左箭头。

        以上知识虽然不多,但是基本在每一个过程中都能见到他们的身影,所以掌握这些最最基本的代码是非常重要的。

另外,现在公众号的留言功能已经开通了,大家如果有任何疑问或者想迫切学习的知识,可以告诉小编我哟,也许下一个课程就是你需要的!