Microsoft Lab
全部软件
Excel范围对象(Range Object)约 3 分钟

Areas Collection Areas 集合

重点内容


适用版本

桌面版通用(Excel 365 / 2021 / 2019 等)。


建立一个多区域范围

Dim rangeToUse As Range, singleArea As Range

Set rangeToUse = Range("B2:C3,C5:E5")

逗号分隔代表这个 Range 包含两块不相邻的区域。


统计总共有几个区域

MsgBox rangeToUse.Areas.Count

结果是 2。


取用第一个区域的单元格数

MsgBox rangeToUse.Areas(1).Count

结果是 4(B2:C3 这一块的单元格数)。


逐一走过每个区域

For Each singleArea In rangeToUse.Areas
    MsgBox singleArea.Count
Next singleArea

依序弹出每一块区域各自的单元格数量。


方法怎么选

想做什么写法例子
知道总共有几块区域.Areas.CountrangeToUse.Areas.Count
取用指定的某一块区域.Areas(编号)rangeToUse.Areas(1).Count
逐一处理每一块区域For Each ... In .AreasFor Each singleArea In rangeToUse.Areas

学完你会

常见错误

  • 以为多区域的 Range 可以像单一连续范围一样直接整体操作,其实很多情况要透过 Areas 逐块处理
  • Areas(1) 的编号从 1 开始,不是从 0,索引搞错会拿到错的区域或报错
  • 明明选取的是单一连续范围,却误用 Areas 逻辑去拆分处理,多此一举

Sources

Blog / Website:

  1. Areas Collection
只记在你的浏览器里,换设备不会同步。