VBA 笔记

VBA(For Excel)

Excel 单元格内容格式

单元格里的数据类型系统是根据数据内容确定的, 比如:你将 A 列单元格格式设为保留两位的数值型, 当你在 A1 输入 5 时, 它就显示为 5.00, 如果输入 ABC, 它就不会变成数值型, 而是文本型, 如果将文本改为数字后, 又回到你设置的保留两位小数格式所以单元格设置格式只能对能转换的数据有效(当你设置为文本型后,所有输入字符都能转换为文本,可以理解为文本型才是单元格真正能设置的格式)

相对地址 & 绝对地址($)

在单元格引用中, $表示 绝对引用, 绝对引用能够在自动填充和复制粘贴时保持引用单元格的绝对位置

如果C2单元格值为 =A2*B2, 自动填充后, C3单元格值为 =A3*B3

如果C2单元格值为 =$A$2*B2, 自动填充后, C3单元格值为 =$A$2*B3

引用单元格

  • A1 表示法
    Range(“A1”)
    Range(“A1:B5”)
    Range(“A1:B5,C1:D5”)
    Range(“A:A”)
    Range(“1:1”)
    Range(“A:C”)
    Range(“1:5”)
    Range(“1:1,3:3,8:8”)
    Range(“A:A,C:C,F:F”)

  • 索引编号(适合用于循环)
    Cells(6, 1)

  • 快捷表示法
    [A1:B5]

  • 相对引用
    Offset(Row, Col)

Range 表示连续的区域有两种表达:

  1. Range(“起始单元格”,“结束单元格”)
  2. Range(“起始单元格:结束单元格”)

Range 表示非连续的区域:

Range("A1:A2, B3:B4").Value = 10


浮点数比较

浮点数是不精确数据, 不能用等号判断是否相等

bool isEqual = abs(f1-f2) <= epsilon

Decimal 类型只能在 Variant 内使用

Decimal类型无法被直接声明

先声明一个Variant, 再使用 Cdec()变成Decimal