应该这么理解:
Range指定单元格区域时,可以:
① 1个参数的用法: Range([单元格区域地址])
以【单元格地址】的【字符串变量】为参数,
返回该【地址参数】指定的【一个或多个】(以逗号分隔)的【矩形区域】。
其中,矩形区域是由【1个以上的单元格】组成的【矩形区域】。
矩形区域可以藉由指定【左上、右下】或指定【左下、右上】的两个单元格地址,
以【:】连接作为矩形区域的地址字符串变量。(单个单元格时当然直接地址就可以了)
例如:
- Sub test()
- Range("a1").Select '单一单元格区域
- Range("b2:c3").Select '左上右下的矩形单元格区域
- Range("b3:c2").Select '左下右上的矩形单元格区域
- Range("a1,b2:c3").Select '2个区域
- Range("a1,b2:c3,e4,g5:h8").Select '4个区域
- Range("a1,a1:c3,e4,c2:h8").Select '4个区域、部分重叠
- End Sub
复制代码以逗号分隔的矩形区域个数可能是30个以内或更多(并非无限)
实际相当于把多个矩形区域Union在一起的作用。
…………
其中,列标为合法的英文字母(不区分大小写)【合法是指实际工作表存在的列标】
行标为合法的自然数(>0的正整数)【合法是指实际工作表存在的行】
都可以用变量代替。【字符串变量、或字符以及变量构成的字符串】
最简单的例子是:
t = "A1"
Range(t).Select
以及、
m=100
Range("a" & m).Select
Range("a2:b" & m).Select
^_^ ^_^ ^_^
② 2个参数的用法:Range(Rng1,Rng2)
以Rng1区域 和 Rng2区域为参数,返回由这两个区域的【最大边界】构成的【矩形区域】。
最大边界是指:
两个区域中的最小行到最大行构成行范围、两个区域中的最小列到最大列构成列范围、
由此得到的矩形区域。
例如:
- Sub test2()
- Range([a1], [d3]).Select
- Range([d4], [b2]).Select
- Range([b4], [e1]).Select
- Range([a1:b2], [c3:d4]).Select
- Range([b5:c2], [c3:d4]).Select
- End Sub
复制代码为简化起见,其中的Rng1和Rng2直接使用了[地址]的最简形式。
也可以使用如Range()指定的1个或以上单元格的矩形区域, 或Cells()指定的单个单元格区域。
【注意】
此处的2个参数Rng1和Rng2,必须为有效的【Range范围对象】,
不是单元格地址字符串。
如果以字符串变量为参数时,必须外套Range()使之转为有效的Range区域。
不能以Range("地址1","地址2")的方式引用。→ 只能是:Range(Range("地址1"),Range("地址2")) 这样。
注意,我前面代码例子中的[a1:b2]并非字符串格式,而已经是=Range("a1:b2")的单元个区域对象了。
以上科普完毕。