2
我是Excel新手。我需要在VBA Excel中评估Sum-product。在VBA Excel中评估Sumproduct
这是我的工作。
- 单元格D4包含特定日期(以黄色高亮显示)
- 小区D6包含新输入的日期(红色高亮显示)
- 列C包含传奇(突出显示粉色)
- J列包含月。 (突出显示的绿色)
- K列包含该特定事务的图例。 (显示为橙色)
- I列包含要总和值(蓝色高亮显示)
- 列D9起将展示和产品的结果(高亮灰)
我试图做的是:
我会在单元格#D6中输入一个日期,该日期将在列J与单元格D6的匹配月份的帮助下求和第I列,如果匹配,则它将在列C中将列K的图例与图例的图例相匹配,如果再次匹配,它将在列D9中向上求和列I和显示它的值。
这是我使用的公式,它在没有VBA的情况下工作。
SUMPRODUCT((MONTH($J$9:$J$12000)=MONTH($D$6))*($K$9:$K$12000=C10)*($I$9:$I$12000))
使用VBA的目的是使用While循环。当我在D6中输入一个特定月份的日期时,它应该递增或递减Month并将它们添加到另一个指定的日期单元格D4(突出显示的黄色)。
但是,当我使用上述公式它返回#值。
Sub Sub1()
Dim a, b, c As Integer
a = Sheet20.Cells(6, 4)
b = 4
c = 10
Do While a >= Cells(4, 4)
Sheet20.Cells(c, b).Value = Evaluate(" (SumProduct((Month(Sheet20.Range(J9:J12000)) = Month(Cells(6, 4))) * (Sheet20.Range(K9:K12000) = Cells(c, 3)) * (Sheet20.Range(I9:I12000)))")
a = a - 1
Loop
End Sub
上述范围是否正确?