【问题标题】:Excel VBA - Sum rows/columns in a 2D arrayExcel VBA - 对二维数组中的行/列求和
【发布时间】:2018-09-24 16:46:38
【问题描述】:

假设我们有一个 4x5 数组。如何求和得到一个包含 5 个元素的单独一维数组,其中每个元素代表第一个数组中元素的列总和?

【问题讨论】:

  • 到目前为止您是否尝试过任何代码,以便我们可以看到您哪里出错了?干杯

标签: arrays excel multidimensional-array vba


【解决方案1】:

如果在电子表格中完成

我想我理解你的问题。在每一列的底部简单地放置一个 SUM 方程并仅对该列中的数字求和。例如,如果您的数组位于 A1:E4(前五列和前四行)中,则将以下内容放入单元格 A5:

=SUM(A1:A4)

然后将单元格A5复制到单元格B5到E5中。

编辑 - 如果在 VBA 中完成

Dim Arr_1(1 to 4, 1 to 5) as Double
Dim Arr_2(1 to 5) as Double
For col = 1 to 5
    Arr_2(col) = 0
    for row = 1 to 4
        Arr_2(col) = Arr_2(col) + Arr_1(row, col)
    Next row
Next col

【讨论】:

  • 第 5 行就是你想要的一维数组
  • 是的,你理解得很正确。但问题是我只想处理数组,没有单元格值。所以二维数组只是一个数组,我想用总和创建一个新数组(不写在单元格中)
  • 太好了,这段代码就是我要找的。谢谢你,user1228123!
【解决方案2】:
Dim Arr_1(1 to 4, 1 to 5) as Double
Dim Arr_2(1 to 5) as Double
For col = 1 to 5
    Arr_2(col) = 0
    for row = 1 to 4
        Arr_2(col) = Arr_2(col) + Arr_1(row, col)
    Next row
Next col

谢谢你,user1228123!

【讨论】:

    【解决方案3】:

    代码对 YourArray 的列求和;对于行开关 0 和 1 的总和

     With Application.WorksheetFunction
           sum_array = .sum(.Index(YourArray(), 0, 1)) 'switch 0 and 1 for row
        End With
    

    【讨论】:

      猜你喜欢
      • 2021-08-24
      • 2018-09-25
      • 1970-01-01
      • 1970-01-01
      • 2014-05-30
      • 2018-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多