EP07. “Union and Intersect 合并与交集”
🔒 登录后可标记已读Union把好几个范围合并成一个 Range 对象Intersect则是找出好几个范围重叠的部分- 这篇讲两者的基础用法和差别
- 前置知识不需要
重点内容
适用版本
桌面版通用(Excel 365 / 2021 / 2019 等)。
Union:合并范围
Union(Range("B2:C7"), Range("C6:F8")).Select
把 B2:C7 和 C6:F8 两个范围合并选起来。
📌 注意这不是数学上严格的「并集」——两个范围重叠的部分(C6:C7)会同时出现在结果里,不会去重。
[截图:运行 Union 后工作表上的选取效果,B2:C7 和 C6:F8 两块不规则形状被同时选中的样子]
Intersect:取交集
Intersect(Range("B2:C7"), Range("C6:F8")).Select
只选出两个范围重叠的部分(本例是 C6:C7)。
方法怎么选
| 方法 | 效果 | 备注 |
|---|---|---|
Union | 把多个范围合并成一个 Range | 重叠部分不会去重,会重复计入 |
Intersect | 只取多个范围重叠的部分 | 没有交集时返回 Nothing,用前要判断 |
学完你会
- ✅ 用 Union 把好几个不相邻的范围合并成一个 Range 对象
- ✅ 用 Intersect 找出多个范围重叠的部分
- ✅ 知道 Union 不会自动去重、Intersect 没有交集时要判断 Is Nothing
常见错误
- 把 Union 和普通的「多选」搞混,以为重叠部分会自动去重,实际上重叠的格子会被重复计入
- 两个范围其实没有交集,却直接对
Intersect的结果做操作,导致返回 Nothing 时代码报错(应该先判断Is Nothing) - Union/Intersect 的参数范围写错,导致选出来的不是预期的区域
Sources
Blog / Website: