【发布时间】:2017-07-22 21:55:57
【问题描述】:
A B C D
east 1 56
west 5 98
east 1 78
west 5 99
south 3 23
east 2 45
south 3 67
我想得到 A+B 相同组合的最大值。例如,对于east1,我应该在D 列中得到78。为此,我使用的是VBA,但代码似乎不起作用。我正在使用数组公式。
我的代码是:
.Range("D2:D" & OutputLastRow).FormulaArray = "=MAX(("$A$2:$A$" & OutputLastRow=A2)*("$B$2:$B$" & OutputLastRow=B2)*("$C$2:$C$" & OutputLastRow))"
代码运行没有任何错误,但结果是错误的,因为随着公式从 D2 向下移动,单元格 A2 和 B2 没有得到更新。 A2 保留为 A2,B2 保留为 B2。我已经尝试使用循环,但这也不起作用。
【问题讨论】:
-
该行没有错误就无法运行 - 它在语法上不正确。
-
考虑创建一个数据透视表。它可能会产生更整洁、更易读的报告。
标签: arrays vba excel excel-formula