Areas
由选定区域内的多个子区域或连续单元格块组成的集合
Excel操作过程中,需要对表格进行多个区域的选择和计算操作,这方面我们会遇到如何针对选择区域进行操作。
Excel在这方面有一个Areas对象

其中Areas是一个集合,里面包含了在表格中所选择的区域。
比如单击一个单元格,就是选择了一个区域。
按住Ctrl键再选择一个,就是2个区域,继续选择就是3、4、5、6等等。
选择不是目的,选择之后要对这些区域进行属性设置,数值计算等等操作,如何来区分哪一个区域呢?
这里引入一个属性Item,大家对这个也不陌生,它需要一个索引号也就是在Item后面加括号,里面添加数字比如:Item(1)就是代码所选择的第一个区域,以此类推。
具体在实际中应用,就需要针对不同的项目来进行处理。
比如数值相加计算。
选择区域之后,就对相应区域数值进行相加,然后写到一个地方保存。
这个过程就可以利用Areass对象来操作。
如下图

功能
分别选择不同月份然后单击按钮,自动计算出数量添加到总计单元格。
代码很简单,如下图

按钮代码
Private Sub CommandButton1_Click()
Dim i As Long
Dim Ar As Range
Set Ar = Selection
'判断是否为多重选择区域
If Ar.Areas.Count <> 1 Then '如果是多重选择区域
For i = 1 To Ar.Areas.Count'循环计算各选择区域
Me.Range("G" & i + 1).Value = Application.WorksheetFunction.Sum(Ar.Areas.Item(i))
Next i
Else
MsgBox "不是多选择区域!"
End If
End Sub
当然了,这些代码并不能完成完全自动化功能,而且选择区域的时候,有一个顺序也不能颠倒次序,不然计算结果就会有些差错。
必须在明白一些选择次序规则的情况下使用,才能得到合理的结果。
如果掌握了各自的数据环境,也可节省许多工作量。
如果配合相应灵活的编程方案,使用起来就十分理想了。
这里不做更深入的研究。