MICROSOFT

EP07. “Union and Intersect 合并与交集”

首页 Microsoft 工具 Excel · VBA · Range Object · EP07
约 3 分钟· #EP07#Excel#Range Object
🔒 登录后可标记已读
  • 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:

  1. Union and Intersect