VBA选取单元格的8种方法本技巧目的: 掌握单元格的各种引用方法Excel 就是由基本元素 -- 单元格构成的,它就像我们身体的细胞一样,可是非常重要的,千万不能小看它的作用。
不论是学习 vba 还是 操作 Excel 本身, 最先接触到的就是单元格,只有熟练的掌握了,才能进行后续的操作。
★★★ 注意:下面所有的标点符号全部使用半角,或者说英文标点。
代码中不区分大小写。
使用代码助手可以实现代码的快速输入。
代码助手下载地址 http://excel880.com/blog/archives/112971. Range 属性单个单元格的表示方法:表示方法:Sheet1.Range("A1")注释:1) 工作表 Sheet1 的单元格: A1, 书写格式:Sheet1.Range("英文字母+数字")2) 保持良好的习惯加上工作表名称,对于后续跨工作表的操作会减少很多的问题。
就像寄快递时要把小区的每栋楼的编号写上一样,不会发生快递寄到隔壁楼的问题哟。
单元格地址选中使用命令: .SelectSheet1.Range("A1").Select多个单元格的表示方法:连续单元格: A3 到 C6 单元格表示方法: Sheet1.range("A3:C6")注释:1) 书写方法: Sheet1. ("英文字母+数字 : 英文字母+数字")2) 首尾单元格之间用 : 连接二组连续单元格,组合起来的方法:A3 到 C6 单元格 , E7 到 G11 单元格表示方法: Sheet1.range("A3:C6, E7:G11")Sheet1.range("A3:C6, E7:G11").Select注释:1) 书写方法: Sheet1. ("英文字母+数字 : 英文字母+数字, 英文字母+数字 : 英文字母+数字")2) 二组不连续的地址,中间用 ,分隔3) 要点: 连续单元格: 首尾之间用 : 来连接, 二段不连续的单元格组合用 ,分隔2. Cells 属性★★★ 小技巧: 安装代码助手后,alt+数字 0 : 可以快速转换 列号 为数字 或者 英文字母单个单元格:表示方法:sheet1.cells(1,1) 或者 sheet1.cells(1,"A")注释:1)括号内 前面代表:行 后面代表:列, 用 ,分隔2)二种方法: ① 前后都使用数字② 前面使用数字,后面用英文字母代表列号 ③ ★★★ 注意:英文字母要加双引号多个单元格的表示方法:连续单元格: B2 到 D7 单元格表示方法:sheet1.Range(sheet1.cells(2,2),sheet1.cells(7,4)) 或者sheet1.Range(sheet1.cells(2,"B"),sheet1.cells(7,"D"))注释:书写方法: sheet1.range(工作表名称.左上方单元格,工作表名称.右下方单元格)★★★ Range 和 Cells 总结:1) Range 和 Cells 书写方法不同: Range("A1") 和 Cells(1,1) 或者 Cells(1,"A") 所指的单元格是相同的2) Range: 写好后, 后面加上 . 系统会出现提示, Cells 没有3) Range: 可以表示连续的单元格4) Cells: 更方便,直接写行,列号, 中间用英文逗号分隔,不需要使用字符串拼接。
它是在循环中根据行列号访问的主要手段例如: Range("A" & rows.count) Cells(rows.count, "A")3. 方括号 [ ]Sheet1.Range("A1") 可以写成 sheet1.[A1]Sheet1.range("A1:C1") 可以写成 sheet1.[A1:C1]★★★ 注意: 只能使用列号的英文字母或者行号数字,不能使用变量4. Offset 属性Offset 的使用方法:以某单元格作为起点,然后以他为起点向上下,左右偏移。
1)需求:当用户选中单元格后 , 需要在选中的单元格左上单元格写入数字 1,且选中单元格是未知的。
2)有了Offset 属性,只需要在 Selection 后输入偏移的行列号,就能实现输入。
3)实现方法:Selection.offset(-1,-1) = 1 这样书写是不是很方便呢?二种方法:使用 offset, 假设以 B3 为起点, 这个起点位置可以根据自己的要求来设定。
书写方法:Sheet1.range("B3").offset(0,1)注释:1) 代表: B3 开始,不偏移行,向右偏移一列, 即 C3 单元格2) offset 括号内 前面数字代表行, 后面数字代表列3) 数字 0 代表: 不偏移4) 数字 -1 代表: 向上 或者 向左 偏移例如1: Sheet1.range("B4").offset(-1,1) 即: B4 向上偏移一行,向右偏移一列, 即 C3 单元格例如2: Sheet1.range("D5").offset(-2,-1) 即: D5 向上偏移二行,向左偏移一列, 即 C3 单元格使用 range 或者 cells, 假设以 B3 为起点, 这个起点位置可以根据自己的要求来设定。
书写方法:sheet1.range("B3").cells(1,2) 或者 sheet1.range("B3").range("B1")注释:1) 上面书写方法代表:B3 开始,不偏移行,向右偏移一列, 即 C3 单元格2) 详解:① 不能 向上 或者 向左 偏移 ② 数字 1 代表: 本行,本列③ 数字 2 代表: 向下 1 行 或者 向右 1 列 ④ 数字 3 代表: 向下 2 行 或者 向右 2 列⑤ 后面以此类推,每增加 1,偏移 也 增加 1 ⑥ Range 中的英文字母可以当作数字来看 即 B 代表 数字 2, C 代表 数字 35. Resize 属性要求:表示上图的 B3:E10 单元格同理:首先以某单元格作为起点,然后以他为坐标向上下,左右扩展。
这里是使用扩展哦。
好处和前面说的 Offset 是一样的:修改方便,另外即使是未知位置单元格也能扩展。
书写方法:Sheet1.Range("B3").Resize(8, 4)注释:1) 上面书写方法代表:B3 开始,(含本行本列)共扩展 8行,4列, 即 B3:E10 单元格2) 详解:① 数字 1 代表: 本行,本列 ② 数字 2 代表扩展: 向下 1 行 或者 向右 1 列③ 数字 3 代表扩展: 向下 2 行 或者 向右 2 列 ④ 后面以此类推,每增加 1,扩展 也 增加 1offset,resize 组合联合使用这两个属性是可以组合使用的。
这样对于后期的改动会更为方便快捷。
要求:表示 C3:E9 单元格书写方法:Sheet1.Range("A1").Offset(2,2).Resize(7,3)注释:1) A1 单元格 偏移: 向下 2行 向右 2列 再扩展: 向下 7行 向右 3列2) 偏移,扩展可以前后随意组合★★★ Offset、Range 和 Resize 总结6. Union 属性连接二个不连续的区域: B3:D8, G10:I15书写方法: Union(Sheet1.Range("B3:D8"), Sheet1.Range("G10:I15"))7. Usedrange 属性书写方法: Sheet1.Usedrange注释:1) 确定Sheet1 的 已使用区域2) 该代码所表示的地址为:A1:D7书写方法:Sheet1.Usedrange注释:1)该代码所表示的地址为: A1:G112)★★★ 注意: F10:G10 区域即使为空格, 表示的地址也会是 A1:G118. CurrentRegion 属性书写方法:Sheet1.Range("A1").CurrentRegion注释:1) 以 A1 为起点的连续区域2) 该代码表示的地址为:A1:D7书写方法:Sheet1.Range("F10").CurrentRegion注释: 该代码表示的地址为:F10:G11



