image.png

本技巧目的: 掌握单元格的各种引用方法

  • Excel 就是由基本元素 — 单元格构成的,它就像我们身体的细胞一样,可是非常重要的,千万不能小看它的作用。不论是学习 vba 还是 操作 Excel 本身, 最先接触到的就是单元格,只有熟练的掌握了,才能进行后续的操作。
  • ★★★ 注意:下面所有的标点符号全部使用半角,或者说英文标点。 代码中不区分大小写。
  • 使用代码助手可以实现代码的快速输入。
  • 代码助手下载地址 http://excel880.com/blog/archives/11297

    1. Range 属性

  • 单个单元格的表示方法:

  • 技巧001 VBA选取单元格的8种方法 - 图2
  • 技巧001 VBA选取单元格的8种方法 - 图3
  • 表示方法:Sheet1.Range(“A1”)
  • 注释:
  • 1) 工作表 Sheet1 的单元格: A1, 书写格式:Sheet1.Range(“英文字母+数字”)
  • 2) 保持良好的习惯加上工作表名称,对于后续跨工作表的操作会减少很多的问题。就像寄快递时要把小区的每栋楼的编号写上一样,不会发生快递寄到隔壁楼的问题哟。
  • 单元格地址选中使用命令: .Select
  • Sheet1.Range(“A1”).Select
  • 多个单元格的表示方法:
  • 技巧001 VBA选取单元格的8种方法 - 图4
  • 连续单元格: 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 : 可以快速转换 列号 为数字 或者 英文字母

  • 单个单元格:
  • 技巧001 VBA选取单元格的8种方法 - 图5
  • 表示方法:sheet1.cells(1,1) 或者 sheet1.cells(1,”A”)
  • 注释:
  • 1)括号内 前面代表:行 后面代表:列, 用 ,分隔
  • 2)二种方法:
  • ① 前后都使用数字
  • ② 前面使用数字,后面用英文字母代表列号
  • ③ ★★★ 注意:英文字母要加双引号
  • 多个单元格的表示方法:
  • 技巧001 VBA选取单元格的8种方法 - 图6
  • 连续单元格: 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 的使用方法:

  • 以某单元格作为起点,然后以他为起点向上下,左右偏移。
  • 技巧001 VBA选取单元格的8种方法 - 图7
  • 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 属性


  • 技巧001 VBA选取单元格的8种方法 - 图8

  • 要求:表示上图的 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 组合联合使用
  • 这两个属性是可以组合使用的。这样对于后期的改动会更为方便快捷。
  • 技巧001 VBA选取单元格的8种方法 - 图9
  • 要求:表示 C3:E9 单元格
  • 书写方法:Sheet1.Range(“A1”).Offset(2,2).Resize(7,3)
  • 注释:
  • 1) A1 单元格 偏移: 向下 2行 向右 2列 再扩展: 向下 7行 向右 3列
  • 2) 偏移,扩展可以前后随意组合

    ★★★ Offset、Range 和 Resize 总结

    技巧001 VBA选取单元格的8种方法 - 图10

    6. Union 属性

  • 技巧001 VBA选取单元格的8种方法 - 图11

  • 连接二个不连续的区域: B3:D8, G10:I15
  • 书写方法: Union(Sheet1.Range(“B3:D8”), Sheet1.Range(“G10:I15”))

    7. Usedrange 属性


  • 技巧001 VBA选取单元格的8种方法 - 图12

  • 书写方法: Sheet1.Usedrange
  • 注释:
  • 1) 确定Sheet1 的 已使用区域
  • 2) 该代码所表示的地址为:A1:D7
  • 技巧001 VBA选取单元格的8种方法 - 图13
  • 书写方法:Sheet1.Usedrange
  • 注释:
  • 1)该代码所表示的地址为: A1:G11
  • 2)★★★ 注意: F10:G10 区域即使为空格, 表示的地址也会是 A1:G11

    8. CurrentRegion 属性


  • 技巧001 VBA选取单元格的8种方法 - 图14

  • 书写方法:Sheet1.Range(“A1”).CurrentRegion
  • 注释:
  • 1) 以 A1 为起点的连续区域
  • 2) 该代码表示的地址为:A1:D7
  • 书写方法:Sheet1.Range(“F10”).CurrentRegion
  • 注释: 该代码表示的地址为:F10:G11

    更多作品请百度搜索 郑广学

    VBA代码助手 懒人神器 在 EXCEL880.COM 官网下载