一、单个单元格引用
| 写法 | 含义 | 示例 |
|---|
Range("A1") | 按地址引用 | Range("B2").Value = 100 |
Cells(行, 列) | 按行列号引用 | Cells(2, 2).Value = 100 |
[A1] | 简写(方括号) | [A1] = 100 |
Rows(1) / Columns("A") | 整行 / 整列 | Rows("1:3").Delete |
二、连续单元格引用
| 写法 | 优点 | 缺点 |
|---|
Range("A1:C5") | 直观、好读 | 不能用变量 |
Range("A1","C5") | 两个角都能传 Range 对象 | 写法稍长 |
[A1:C5] | 最简洁 | 不能用变量,调试困难 |
三、非连续单元格引用
| 写法 | 含义 |
|---|
Range("A1,C5") | A1+C5 |
Range("A1:C5, E1:G5") | 两个不连续矩形区域 |
Range("A:A, C:C, E:E") | 不连续多列 |
四、Intersection 和 Union
- Intersection 判断某单元格是否在指定区域内,限定操作范围等
2.Union 动态收集符合条件的单元格
Dim rngResult As Range
Dim cell As Range
For Each cell In Range("A1:A100")
If cell.Value > 100 Then
If rngResult Is Nothing Then '需要做nothing判断
Set rngResult = cell
Else
Set rngResult = Union(rngResult, cell) ' 逐步拼接
End If
End If
Next cell
五、Offset 和 Resize
六、UsedRange(有格式无内容计入在内) 和 CurrentRegion(等同Ctrl + A)
七、End(xlup|xldown|xltoleft|xltoright)