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

VBA中如何对一维/二维数组(矩阵)逐元素求和?

VBA数组逐元素求和解决方案

嘿,这个问题我太熟悉了!先给你提个关键细节:从Excel单元格区域通过.Value获取的数组,哪怕是单列/单行,本质都是二维数组——比如你说的7行1列,实际是(1 To 7, 1 To 1)的二维结构,不是一维数组哦。这点得留意,不然写循环的时候容易踩坑。

下面分两种场景给你写具体实现:

场景1:7行1列的数组逐元素求和

先声明一个和原数组维度一致的结果数组,然后通过循环遍历每一行,把两个数组对应位置的元素相加:

Sub SumSingleColumnArrays()
    Dim Per_Mnd As Variant, Per_Mnd2 As Variant, SumArr As Variant
    Dim i As Integer
    
    ' 读取两个区域的数组(都是7行1列的二维数组)
    Per_Mnd = Worksheets("Sheet1").Range("G2:G8").Value
    Per_Mnd2 = Worksheets("Sheet2").Range("G2:G8").Value
    
    ' 初始化结果数组,维度和原数组一致
    ReDim SumArr(LBound(Per_Mnd, 1) To UBound(Per_Mnd, 1), _
                LBound(Per_Mnd, 2) To UBound(Per_Mnd, 2))
    
    ' 逐行求和
    For i = LBound(Per_Mnd, 1) To UBound(Per_Mnd, 1)
        SumArr(i, 1) = Per_Mnd(i, 1) + Per_Mnd2(i, 1)
    Next i
    
    ' 可选:把结果写回工作表,比如Sheet3的G2:G8
    Worksheets("Sheet3").Range("G2:G8").Value = SumArr
End Sub

场景2:7行2列的矩阵逐元素求和

这种情况只需要在循环里多嵌套一层列的遍历,同时处理行和列的对应元素:

Sub SumTwoColumnArrays()
    Dim Per_Mnd As Variant, Per_Mnd2 As Variant, SumArr As Variant
    Dim i As Integer, j As Integer
    
    ' 读取两个7行2列的二维数组
    Per_Mnd = Worksheets("Sheet1").Range("G2:H8").Value
    Per_Mnd2 = Worksheets("Sheet2").Range("G2:H8").Value
    
    ' 初始化结果数组
    ReDim SumArr(LBound(Per_Mnd, 1) To UBound(Per_Mnd, 1), _
                LBound(Per_Mnd, 2) To UBound(Per_Mnd, 2))
    
    ' 双重循环:逐行逐列求和
    For i = LBound(Per_Mnd, 1) To UBound(Per_Mnd, 1)
        For j = LBound(Per_Mnd, 2) To UBound(Per_Mnd, 2)
            SumArr(i, j) = Per_Mnd(i, j) + Per_Mnd2(i, j)
        Next j
    Next i
    
    ' 可选:把结果写回工作表,比如Sheet3的G2:H8
    Worksheets("Sheet3").Range("G2:H8").Value = SumArr
End Sub

小提示

  • 用LBound和UBound代替硬编码的数字(比如7、2),能让代码更灵活——哪怕后续区域大小变了,代码也不用改。
  • 如果你的数组确实是手动声明的一维数组(比如Dim arr(1 To 7)),那循环只需要遍历一维的索引就行,逻辑是完全相通的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:40:19