You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将多个Areas存储为Areas类型的数组?

解决VBA中Areas类型数组赋值的报错问题

你遇到的"invalid use of property"错误主要有两个原因:一是对象类型赋值没用到Set关键字,二是类型不匹配——Selection.Areas(i)返回的是Range对象,而非Areas对象,直接赋值给Areas类型变量自然会报错。

既然你明确不想用Range数组,而是要存储Areas类型的数组,我们可以通过单个Range的.Areas属性来生成包含该Range的Areas集合,这样每个数组元素都是独立的Areas对象。修正后的代码如下:

Dim SelAreas() As Areas
Dim NumAreas As Integer
Dim i As Integer

NumAreas = Selection.Areas.Count
ReDim SelAreas(1 To NumAreas)

For i = 1 To NumAreas
    ' 利用单个Range的Areas属性,生成包含自身的Areas集合
    Set SelAreas(i) = Selection.Areas(i).Areas
Next i

代码说明:

  • VBA中所有对象类型的赋值都必须使用Set关键字,这是你之前代码遗漏的关键步骤。
  • Selection.Areas(i)是单个Range区域,它的.Areas属性会返回一个仅包含自身的Areas集合,刚好符合你要存储Areas类型的需求。
  • 后续你可以通过SelAreas(index).Count查看每个Areas集合的区域数量(这里都是1),或者用SelAreas(index)(1)访问集合里的具体Range。

内容的提问来源于stack exchange,提问作者Balasubramanian Seshadri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 03:43:41