lol春季大作战:关于range

来源:百度文库 编辑:偶看新闻 时间:2024/05/03 07:59:08

昨天都还很迷茫range和cells的区别,今天啃帖有了点理解,帖出来供同类新手参考

range译成中文是“集合”的意思,其最基本用途是可以选择一个矩形区域,如

range("a1","b5")表示a1单元格至b5单元格的区域,作为特殊情况range("a1")指一个单元格而非区域,range标识单元格的格式是A(列)1(行);

cells是cell的复数(cell译成中文是“单个”的意思),其其用途是选择一个单元格,如

cells(2,1)表示第二行第一列这个单元格,其参数中用逗号(半角)来分割行号和列号,比range多了个逗号,并且行、列的先后顺序相反了。

range(cells(i,2),cells(5,5))的意思是选择第i行第2列的单元格至第5行第5列单元格形成的区域,i是个变量,这为你需要选择一定条件的区域提供了可能,每一个参数你都可以设置为变量。

range还有属性的意义,这里不表,搞清楚了这个也好。range译成中文是“集合”的意思,其最基本用途是可以选择一个矩形区域,如
range("a1","b5")表示a1单元格至b5单元格的区域,作为特殊情况range("a1")指一个单元格而非区域,range标识单元格的格式是A(列)1(行);

cells是cell的复数(cell译成中文是“单个”的意思),其用途是选择一个单元格,如
cells(2,1)表示第二行第一列这个单元格,其参数中用逗号(半角)来分割行号和列号,比range多了个逗号,并且行、列的先后顺序相反了。

range(cells(i,2),cells(5,5))的意思是选择第i行第2列的单元格至第5行第5列单元格形成的区域,i是个变量,这为你需要选择一定条件的区域提供了可能,每一个参数你都可以设置为变量。
range还有属性的意义,这里不表,搞清楚了这个也好。
range也可以采用变量的
如:range("a"&i)'i为变量
Range是可以采用变量的,不过没有Cells引用方便.
如果从B6位置,变换到行增加6,列增加到15的话,
用offset(6,15)还算方便,但如果一定要用变量来转换的话,
行还可以,i+6,但是:
B列要变成Q列的话,不是不可以,非常不方便了。

所以,要用的话,也是直接用offset()了。


关于range(cells(i,2),cells(5,5)),用resize也可做到,如
cells(i,2).resize(行,列)

Range对象代表一个单元格或单元格区域(VBA帮助如是说,我个人认为一般情况下帮助的解释还是非常准确的)
range("a1","b5")可以写为range("a1:b5"),还可以写为range([a1],[b5]),对于非连续区域表示为range("a1:b5,D8:F10"),其中虽然有逗号,但是和range("a1","b5")的意义完全不同,如果不清除区别何在,请用下面两句代码分别看一下效果
Range("a1:b5,D8:F10").Select
Range("a1:b5","D8:F10").Select

例子验证Range("a1:b5,D8:F10").Select是选择了两块区域
Range("a1:b5","D8:F10").Select是选择了两块区域以及之间的连接区域
真是很迷茫啊,我的理解:
Range( "a1:b5,D8:F10" )以及Range( "a1,D8" )'在双引号内的逗号,它就是一个分隔符,把两块区域(或单元格)分隔开!
Range( "a1:b5","D8:F10" )以及Range( "a1","D8" )'在双引号外的逗号,它就是一个连接符,把两块区域(或单元格)连成片!
再加一句:就此处而言,冒号它不能用在双引号外,只能在其内,它也就是个连接符!

按照taller的说法:range("a1","b5")=range("a1:b5")=range([a1],[b5])
帮助是非常重要的,值得我们去仔细研究expression.Range(Cell1, Cell2)
expression      必需。该表达式返回上面的对象之一。
Cell1      Variant 类型,必需。区域名称。必须为 A1 样式引用的宏语言。可包括区域操作符(冒号)、相交区域操作符(空格)或合并区域操作符(逗号)。也可包括货币符号,但它们被忽略掉。可在区域中任一部分使用局部定义名称。如果使用名称,则假定该名称使用的是宏语言。
Cell2      Variant 类型,可选。区域左上角和右下角的单元格。可以是一个包含单个单元格、整列或整行的 Range 对象,或是一个用宏语言为单个单元格命名的字符串。
大家有兴趣可以看看下面代码的区别,理解一下第二句代码