Range,Cells的使用.doc_第1页
Range,Cells的使用.doc_第2页
Range,Cells的使用.doc_第3页
Range,Cells的使用.doc_第4页
Range,Cells的使用.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、 Range,Cells选择单元格的用法 Range属性选择单元格 1.选择单个单元格(例如A5) Range(A5).Select 2.选择一个单元格区域(例如A6:A10) Range(A6:A10).Select 3.选择一些不相邻的单元格(例如A1,B6,C8) Range(A1,B6,C8).Select 4.选择一些不相邻的单元格和单元格区域(例如A11:D11,B7,C9) Range(A11:D11,B7,C9).Select Cells属性选择单元格 1.选择单个单元格(例如A5) Cells(5,1).Select Cells(5,A).Select 2.选择一个单元格区域(例如A6:A10) Range(Cells(6,1),Cells(10,1).Select 3.选择工作表中的所有单元格 Cells.Select Cells属性在VBA代码中应用Set r = Cells 应用于 Application 对象,Application 省略Set r = Application.Cells 应用于 Application 对象Set r = Worksheets(1).Cells 应用于 Worksheet 对象Set r = Range(A1:C5,B2:D6).Cells 应用于 Range 对象,这个就我个人而言,找不出很好的应用 b. 区域左上角和右下角的单元格Set r = Range(Range(A1), Range(IV65536)二、 Range和Cells的理解和应用1. 单元格行号列标里面有变量时的表达方法 Range(A & i)和Cells(i,1)比较常用,Cells(i,A)这种引用方法一般是当列标号较大(BJ,IV),不易计算时,可以直接用双引号加列标作为第二参数) 2. Range、Cells的差异Range(A1)Cells(1,1)a1可以引用的对象单元格、区域、多区域、整行、整列单元格单元格、区域、多区域、整行、整列自动列出成员支持不支持不支持用于代码循环行循环行循环、列循环不支持输入简便性差差好支持参数索引号、Item和CellsItem和Cells不支持从以上比较中可以发现,Cells()的优势在于代码循环中可以进行行与列循环,缺点是无法引用区域;Range的优势在于支持自动列出成员,支持行循环和参数,缺点是书写时不够方便、不支持列标循环;而A1方式的优势在于书写方便,可以引用区域,缺点是不支持循环和不能自动列出成员。其中需要强调的有三点:支持自动列出成员和循环。(1)自动列出成员对象是否支持自动列出成员是很重要的一个特点,在编写代码时,可能程序员对某些属性或者方法不够熟悉,需要借助自动列出成员来快速完成。那么需要记住用何种方式可以调用其成员。在单元格的三种引用方式中,仅仅第一种支持自动列出成员,在代码窗口录入“A1.”或者“Cells(1,1)”后不会有任何反应。(2)所谓支持参数是指访问其子集。访问区域的子集有三种方法。例如Range(“A1:A10”)第二个子集,那么有以下三种方式:Range(“A1:A10”).Item(2)Range(“A1:A10”).Cells (2)Range(“A1:A10”) (2)而A1方式引用单元格时仅仅支持两种方式引用子集。例如:A1:A10. Item(2)A1:A10. Cells (2)而“A1:A10 (2)”,即删除圆点,则是非法引用“Cells(1:1)”表示访问区域中第一个子集,如果不带前置对象,则默认为当前工作表中A1;如果前置Range对象,那么表示该对区域的第一个单元格,可能是A1,也可以是A1以外的任意单元格。(3)支持循环Sub tttt() Application.ScreenUpdating = False For j = 1 To 5 start1 = Timer For i = 1 To 20000 Range(A & i) = i Next i Range(B & j) = Timer - start1Next j For j = 1 To 5 start1 = Timer For i = 1 To 20000 Cells(i, 1) = i Next i Cells(j, 3) = Timer - start1 Next j Application.ScreenUpdating = TrueEnd Sub 上面的代码里分别采用了Range和Cells引用方法,分别运行5次、每次从1运行到20000,可以看出Cells方法要比Range方法稍快一些。三、 End属性End属性返回一个Range对象,该对象代表包含源区域的区域尾端的单元格。等同于按键、或,语法如下:expression.End(Direction)参数expression是必需的,一个有效的对象。参数Direction是可选的,所要移动的方向,可以为表格 31所示的XlDirection 常量之一。常量值描述xlDown-4121向下xlToRight-4161向右xlToLeft-4159向左xlUp-4162向上表格 XlDirection 常量Range对象的End属性返回的是一个Range对象,因此可以直接使用该对象的属性和方法。例如:1、Range(a1048576).End(xlUp).Select在excel2007或excel2010版本中,返回A列最后一个非空单元格并选中2、Range(a65536).End(xlUp).EntireRow.Select在excel20003及以前版本中,返回Alien最后一个非空单元格并整行选中四、 通过VBA中的Union合并多个Range选择区域在Excel中,Union的功能是合并两个或两个以上的选择区域,合并成为一个更大的区域。 所合并的多个选择区域,这些选择区域,可以是不连续的,也可以是连续的。 一般情况下,要使用Union,可通过如下来使用: expression.Union(Arg1, Arg2, .) 其中,expression参数为可选。该表达式返回一个Application对象; Arg1, Arg2, . Range 类型,必需。必须至少指定两个Range对象。 在使用Union的时候,我们也没有必要使用expression.Union,直接调用Application.Union方法即可。 一、最不灵活的实例 Dim MyArea1, MyArea2 As Range Set MyArea1 = Range(A1:B3) Set MyArea2 = Range(A7:B10) Application.Union(MyArea1, MyArea2).Select 如上代码,功能是,首先定义两个选择区域,然后,分别设置选择区域为:A1:B3和A7:B10;最后,通过Application.Union把两个选择区域进行合并,并将合并后的区域选中。 当然,Application.Union合并区域,功能是强大的,但是,至少要有两个选择区域;如果有多个,也是可行的,如下代码,通过Application.Union合并三个选择区域,并将其选中。 Dim MyArea1, MyArea2, MyArea3 As Range Set MyArea1 = Range(A1:B3) Set MyArea2 = Range(A7:B10) Set MyArea3 = Range(A12:B14) Application.Union(MyArea1, MyArea2, MyArea3).Select 以上代码大家都看了,有没有发现问题呢? 当我们在设定选择区域的时候,必须在Range()指明从哪个单元格到哪个单元格,比如Range(A12:B14) ,那是多么的麻烦。 下面,给大家介绍一下更为灵活方便的方法。 二、较为灵活方便的方法 要选择多个区域并合并,使用单元格名称来确定区域,是多么的不方便。 我们完全可以使用行列的序号来代替单元格名称。 如下代码: Dim MyArea1, MyArea2, MyArea3 As Range Set MyArea1 = Range(Cells(1, 1), Cells(3, 3) Set MyArea2 = Range(Cells(6, 1), Cells(9, 3) Set MyArea3 = Range(Cells(12, 1), Cells(13, 3) Application.Union(MyArea1, MyArea2, MyArea3).Select 就是这样,通过Range(Cells(1, 1), Cells(3, 3)来代替Range(“A1:C3”)。 知道为什么要这么使用吗,原因就是,当您试图通过VBA来确定单元格名称,如A1:C3时,难以构造这样的字符连接。倒不如直接使用行列所在的序号进行替代,因为Cells(行号、列号),里面的行列号,我们可以通过直接指定或者通过循环赋予一个值。 三、更灵活的实例 基于以上两个实例,下面,我们可以构造一个更为灵活的实例。先看如下代码吧: Applic

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论