VBA选取单元格的8种方法
本技巧目的: 掌握单元格的各种引用方法
- Excel 就是由基本元素 — 单元格构成的,它就像我们身体的细胞一样,可是非常重要的,千万不能小看它的作用。不论是学习 vba 还是 操作 Excel 本身, 最先接触到的就是单元格,只有熟练的掌握了,才能进行后续的操作。
- ★★★ 注意:下面所有的标点符号全部使用半角,或者说英文标点。 代码中不区分大小写。
- 使用代码助手可以实现代码的快速输入。
- 代码助手下载地址 ***/blog/archives/11297
1. Range 属性
- 单个单元格的表示方法:
- 表示方法:Sheet1.Range(“A1”)
- 注释:
- 1) 工作表 Sheet1 的单元格: A1, 书写格式:Sheet1.Range(“英文字母+数字”)
- 2) 保持良好的习惯加上工作表名称,对于后续跨工作表的操作会减少很多的问题。就像寄快递时要把小区的每栋楼的编号写上一样,不会发生快递寄到隔壁楼的问题。
- 单元格地址选中使用命令: .Select
- Sheet1.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 代表 数字 3
5. 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,扩展 也 增加 1
- offset,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:G11
- 2)★★★ 注意: F10:G10 区域即使为空格, 表示的地址也会是 A1:G11
8. CurrentRegion 属性
- 书写方法:Sheet1.Range(“A1”).CurrentRegion
- 注释:
- 1) 以 A1 为起点的连续区域
- 2) 该代码表示的地址为:A1:D7
- 书写方法:Sheet1.Range(“F10”).CurrentRegion
- 注释: 该代码表示的地址为:F10:G11
本文来自投稿,不代表天一生活立场,如若转载,请注明出处:http://tiyigo.com/it/8124.html