excel表里的函数range怎么用的
下面一个简单的VBA程序,可以全面地理解Range对象的用法,以及与Cells的区别。
Sub RangVsCellsDemo()
Dim r
' 1. 先看 Range 和 Cells 的定义
' A. Range 的定义为 Class Range,表示 Range 是一个类,可以根据其所带的参数构造一个Range 对象
' B. Cells 的定义为 Property Cells As Range,表示 Cells 是一个属性,返回一个 Range 对象,具体应
' 用于不同对象时返回对象不同(帮助时说的明白)
' 2. Cells主要作用在于他可以简洁的返回一个Range对象,而使用Range的构造方法相对代码比较长
' 比如在2003里,单个的Cells就相当于Range("1:65536"),显然,用前者更简洁明了,顺便提一下,Cells后带
' 括号的用法应是 Range 对象 Item 属性的用法,因为 Item 属性是 Range 对象的默认属性,Item省略写
' 出来罢了
Range("1:65536")(2, 3).Select ' 选取C2单元格
Range("1:65536")(2, "d").Select ' 选取D2单元格
Range("1:65536")(256 + 5).Select ' 选取E2单元格
Cells(2, 3).Select ' 选取C2单元格
Cells(2, "d").Select ' 选取D2单元格
Cells(256 + 5).Select ' 选取E2单元格
' 3. Cells 为属性,所以,只有定义了该属性的特定对象才能使用,并且返回特定的 Range 对象,总的来讲是返
' 回对象的全部单元格,特别注意,这里所讲的全部并不是我们肉眼所看到的,对于有的联合区域,返回的单元格
' 与想象的有点差别,比如 Range("A1:C5,B2:D6").Cells.Count 返回值是30,而我们肉眼看到 A1:C5 和 B2:D6
' 两片区域的单元格个数只有22个
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 对象,这个就我个人而言,找不出很好的应用
' 4. Range为类类型,可以通过不同的方法构造Range对象
' a. 用区域名称, 用 A1 样式引用的宏语言
Set r = Range("A1:B2") ' 区域操作符(冒号)
Set r = Range("A1:C5 B2:D6") ' 相交区域操作符(空格)
Set r = Range("A1:C5,B2:D6") ' 合并区域操作符(逗号)
' Set r = Range("UserRng") ' 自定义名称,要先建立自定义名称UserRng
' b. 区域左上角和右下角的单元格
Set r = Range(Range("A1"), Range("IV65536"))
End Sub
range(目标区域地址),目标区域地址就是参数。
这个函数是在循环中动态取得范围。
Range("b" & i & ":h" & i)这个格式是对的。
常用的格式就是
Range("a1", "b4").Select
Range("a2:b4").Select
扩展资料:
range是一种计算机术语,在Excel中,Range集合代表某一单元格、某一行、某一列、某一选定区域(该区域可包含一个或若干连续单元格区域),或者某一三维区域。
可用 Range(arg)(其中 arg 为区域名称)来返回代表单个单元格或单元格区域的 Range 对象。
表示单元格——range("A1")表示第一行第一列的单元格,实质上于cells(1,1)效果一样。两者在这种情况下是一样的,但是两者的关系可以这样理解,range对象是单元格对象的集合。
range对象在表示单元格的时候不可以像cells(i,j)一样range("ij")表示的,这是要注意的一点!
range对象表示连续的区域有两种表达:第一是range("起始单元格","结束单元格"),第二是range("起始单元格:结束单元格")。
对于不连续的区域,range的表达是:range("起始单元格1:结束单元格1,起始单元格2:结束单元格2")
参考资料:range函数
甲表里面有如下字段:
工号 姓名 部门 生日
123 张三 资讯 8/3
乙表里有如下字段:
工号 姓名 年龄
123 张三 23
那么就可以使用Vlookup()函数关联两个表的数据,关联依据最好选用“工号”
比如,在乙表中对应甲表中的生日:
=VLOOKUP(A:A,甲!A:D,4,0) ,其中,
1、“A:A”,表示乙表中与甲表关联的依据(工号),
2、“甲!A:D”表示在甲表中,从“A列(工号)到D列(生日)”,
3、“4”表示甲表中A:D间隔为4,
4、“0”表示精确匹配,即工号需要完全一致才可以对应。
该函数详细语法如下,需要仔细阅读才可完全理解,供参考:
——————————————————————
VLOOKUP
在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值。当比较值位于数据表首列时,可以使用函数 VLOOKUP 代替函数 HLOOKUP。
在 VLOOKUP 中的 V 代表垂直。
语法
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
Lookup_value 为需要在数组第一列中查找的数值。Lookup_value 可以为数值、引用或文本字符串。
Table_array 为需要在其中查找数据的数据表。可以使用对区域或区域名称的引用,例如数据库或列表。
如果 range_lookup 为 TRUE,则 table_array 的第一列中的数值必须按升序排列:…、-2、-1、0、1、2、…、-Z、FALSE、TRUE;否则,函数 VLOOKUP 不能返回正确的数值。如果 range_lookup 为 FALSE,table_array 不必进行排序。
通过在“数据”菜单中的“排序”中选择“升序”,可将数值按升序排列。
Table_array 的第一列中的数值可以为文本、数字或逻辑值。
文本不区分大小写。
Col_index_num 为 table_array 中待返回的匹配值的列序号。Col_index_num 为 1 时,返回 table_array 第一列中的数值;col_index_num 为 2,返回 table_array 第二列中的数值,以此类推。如果 col_index_num 小于 1,函数 VLOOKUP 返回错误值值 #VALUE!;如果 col_index_num 大于 table_array 的列数,函数 VLOOKUP 返回错误值 #REF!。
Range_lookup 为一逻辑值,指明函数 VLOOKUP 返回时是精确匹配还是近似匹配。如果为 TRUE 或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值;如果 range_value 为 FALSE,函数 VLOOKUP 将返回精确匹配值。如果找不到,则返回错误值 #N/A。
说明
如果函数 VLOOKUP 找不到 lookup_value,且 range_lookup 为 TRUE,则使用小于等于 lookup_value 的最大值。
如果 lookup_value 小于 table_array 第一列中的最小数值,函数 VLOOKUP 返回错误值 #N/A。
如果函数 VLOOKUP 找不到 lookup_value 且 range_lookup 为 FALSE,函数 VLOOKUP 返回错误值 #N/A。
Excel的VBA编程中,很常用到的是通过字符串返回Range的功能,然后进一步对Range操作,这里水文工具集介绍一个实用的VBARange函数RangeFromAddress,具体源代码如下:
上面的RangeFromAddress还引用到两个函数,具体代码如下
01.Function GetObjectParentSheet(aObject As Object) As Object
02.Dim op As Object
03.On Error Resume Next
04.
05.If aObject Is Nothing Then GoTo ErrorExit
06.Set op = aObject.Parent
07.If op Is Nothing Then GoTo ErrorExit
08.
09.If TypeOf op Is Workbook Then
10.Set GetObjectParentSheet = aObject
11.GoTo ErrorExit
12.End If
13.
14.Do Until (TypeOf op Is Worksheet) Or (TypeOfop Is Application)
15.Set op = op.Parent
16.Loop
17.
18.If TypeOf op Is Worksheet Then SetGetObjectParentSheet = op
19.
20.ErrorExit:
21.Exit Function
22.End Function
23.
24.
25.Function GetObjectParentWorkbook(aObject AsObject) As Workbook
26.Dim o As Object
27.
28.On Error GoTo ErrorHandle
29.
30.If aObject Is Nothing Then GoTo ErrorExit
31.Set o = aObject.Parent
32.
33.If TypeOf aObject Is Workbook Then
34.Set GetObjectParentWorkbook = aObject
35.GoTo ErrorExit
36.End If
37.
38.Do Until (TypeOf o Is Workbook) Or (TypeOf o Is Application)
39.Set o = o.Parent
40.Loop
41.
42.If TypeOf o Is Workbook Then SetGetObjectParentWorkbook = o
43.
44.ErrorExit:
45.Exit Function
46.
47.ErrorHandle:
48.Resume ErrorExit
49.End Function
RANGE其实就是选择计算范围