Excel VBA学习笔记(一):单元格、单元格区域的表达式
EXCEL表格中我们要处理的数据都位于单元格中,单元格及单元格区域怎么表示,就是VBA代码的基本了。下面讲解几种常用的单元格、单元格区域语法表达式。
1、[A1] 最简单写法。中括号,里面写上单元格地址,地址表述形式是列号在前,行号在后。[A1:B10] 表示A1到B10这么一个区域。中括号内不需要加引号,因为中括号内不能用变量。比如 n=10 ,[A1:B &n],是不行的。
2、cells(行号,列号)。 Cells多用于表示单个的单元格,参数是“行”在前,“列”在后。Cells(1 , ”A”)表示的就是[A1]单元格,注意加引号“A”,不加引号会被认为是变量A。Cells不带括号就表示所有单元格,之前讲到的Cells.Replace就是此用法。 带变量的写法:Cells(x, “A”),Cells(1, y),Cells(x, y);数字不能用作变量,所以数字1作为参数也不需要加引号。变量x代表 “行”,变量y代表”列”,x的值只能为数字;变量y虽然可以为”A”这样的字符(下图),但通常使用中,都是给y赋值为数字。
语法:Cells(数字)还有这样的表示,见图:
此表达式基本没见使用过,不做释义。
3、Range() 本意是单元格区域的意思。常用的表达式如下:
(1)Range('A1') 就是单元格A1,等同于[A1]。 注意与Cells()的行在前,列在后顺序不同。
(2)Range('A1:B5') 从单元格A1到单元格B5区域;也可写为Range(“A1”,”B5”) 中间为逗号。
(3)Range('A1:B5 ,C1:C8') 多块区域的表达式。
(4)Range()带变量,表示单个单元格语法如Range(“A” & x) ,x为数字;单元格区域表达式 Range('A1:F' & x) 等同于 Range('A1', 'F'&r) ,表示从A1到Fr区域范围。个人更喜欢后一种写法,更清晰直观。 那如果是列为变量X,能不能Range(X & 1)?答案是不行,在Range的表达式中,列参数不支持为数字;Cells支持列为数字。所以列是变量,可写为:Range(cells(1,y),cells(10,y)),表示Y列第1行到第10行这个区域。Cells的参数里不能嵌套Range。
4、表示整行整列的表达式:Rows(1)表示第1行一整行。Rows(“1:10”) 行号从1到10的10个整行。Range('1:1') 表示第1行一整行,Range(“1:10”)也表示行号从1到10的10个整行。
整列也有相同的表达式 Columns(“A”) 表示第A列一整列,也可写为 Columns(1),只有在单列的情况,两种表达方法意义是一样的。多列的表达方式 Columns('A:F') 不可写为 Columns('1:5') 。Range表达上述情况时,都须用字符序号表示:Range(“A:A”),Range(“A:F”)。注意在此条中引号的使用差别。