VBA-06操作单元格对象

单元格对象

使用三种方式表示

  1. range
  2. cells
  3. []

Range

 Microsoft文档: https://docs.microsoft.com/zh-cn/office//vba/api/excel.range(object)

表示一个单元格、一行、一列、一个包含单个或若干连续单元格区域的选定单元格范围,或者一个三维区域

表示单元格对象

  • 参数:字符串
    • 必须使用双引号括起来
    • 使用变量时需要使用&(字符串连接符)
  1. 单个单元格: range("a1")
    • 表示a1单元格  
  2. 单元格区域: range("a1: b10")
    • 表示a1:b10单元格区域
  3. 一行或多行单元格区域:range("1:5")
    • 第一个数字:从第几行开始
    • 第二个数字:到第几行结束
    • 表示第1到5行
  4. 一列或多列单元格区域:range("a:c")
    • 使用字母表示列
    • 参数和上一个一样
    • 表示从a列到c列

Cells

使用行列号来表示单元格

  • 先是行号,后面是列号,顺序和range不同
  • 行号,列号都是从1开始
  • 只能表示一个单元格
  • cells(2,3) 第二行,第三列单元格,即C2单元格

不带参数的Cells表示当前页的所有单元格

[]

  • 最简单的方式
  • [a1] 表示a1单元格
  • a1 不是字符串,不需要添加引号
  • 不支持变量,一般不使用

方法

  1. copy
    • 复制单元格
    • 参数:粘贴单元格的位置
    • Range("H7:L7").Copy Destination:=Range("n7")
      Range("H7:L7").Copy Range("m7")
    • 整行复制的话,目标位置必须从a列开始 
  2. clear
    • 清楚单元格
    • 包含内容和格式设置(边界,背景等)
  3. clearcontents
    • 清楚单元格内容
  4. AutoFilter
    • 筛选
    •  
    • Field: 需要按照拿一些进行筛选,参数必须是列号

    • Criteria1: 注意最后是数字1,而不是字母l, 表示筛选的条件,一般是字符串
    • 没有参数的AutoFilter会在行上添加筛选按钮,如果是第二次的AutoFilter则会取消筛选状态
    •   

属性

  1. Value

    • 单元格的值
    • 默认参数常常省略,使用单元格的值时,直接使用单元格对象
    • Range ("a1")
      Range("a1").Value
      ' 当使用value时,可以省略,直接使用单元格
  2. offset

    • 偏移量
    • 相对位置,当使用相对引用录制宏的时候,使用offset记录的单元格
    • 参数: (行的偏移量,列的偏移量)
    • 注意:坐标原点在左上角,正数表示: 下移多少行,右移多少行
    • 偏移之后返回的也是一个range对象
    • 做运算的时候,使用offset代替range绝对位置
    •  
  3. end

    • 表示边界位置
    • 搭配单元格和方位使用
    • 等同于:Excel中时使用Ctrl+Shift+方向键 定位单元格的上下左右边界
    • 常用于确认表的边界,如表中有多少行数据
    • 本质上是沿着单元格的上下左右四个方向探测,遇到非空单元格就返回
    • 探测边界时,使用end-up组合
      • 当且只有一行数据时,使用range("a1").end(xldown)会定位到当前sheet页的最后一个单元格,而不是实际的边界
    • 常用于确定有多少行
    • Range("a65536").End(xlUp).Row  # 有多少行
  4. EntireRow和EntireColumn
    • 表示当前单元格的整行,整列数据
    • 聚光顶效果的实现是采用这两个属性实现的
    • Sub 聚光灯效果()  
          ' 去除所有cells的背景颜色
          Cells.Interior.Pattern = xlNone   
          ' 设置整行单元格的背景颜色
          With Selection.EntireRow.Interior
              .Color = 9699327
          End With
          ' 设置整列的填充颜色
          With Selection.EntireColumn.Interior
               .Color = 9699327
          End With
  5. resize
    • 重新定义区域
    • 参数(行的大小, 列的大小)
    • 对象: 单元格或者单元格区域 
    • 表示自第一个单元格位置开始,一个包含几行,几列的单元格区域
    • Range("a1:a10").Resize(2, 2).Select
      Range("a1").Resize(2, 2).Select
      # 都表示a1:b2的四个单元格
原文地址:https://www.cnblogs.com/ZhaoLong-study/p/13235014.html