[英]Sumproduct to be evaluated in VBA Excel
我是Excel新手。 我需要在VBA Excel中評估總和產品。
這是我的工作表:
我想做的是:
我將在D6單元格中輸入一個日期,該日期將在D列與D6單元格匹配的月份的幫助下對I列求和,如果匹配,則它將K列的圖例與C列的圖例相匹配,如果匹配再次,它將對I列求和,並在D9列開始顯示它的值。
這是我使用的公式,沒有VBA也可以使用。
SUMPRODUCT((MONTH($J$9:$J$12000)=MONTH($D$6))*($K$9:$K$12000=C10)*($I$9:$I$12000))
使用VBA的目的是使用While循環。 當我在D6中輸入特定月份的日期時,它應該增加或減少月份,並將它們添加到另一個指定的日期單元格D4(突出顯示的黃色)中。
但是,當我使用上述公式時,它將返回#Value。
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
以上是否正確選擇了范圍?
我已經為您使用的工作表添加了正確的參考。 在VBA中,您需要首先指定“ Sheet20”是一個工作表。
因此,我用Worksheets("Worksheet20")
替換了“ Sheet20”,從而清楚地表明它是工作表集合的一部分。
Sub Sub1()
Dim a, b, c As Integer
a = Worksheets("Sheet20").Cells(6, 4)
b = 4
c = 10
Do While a >= Cells(4, 4)
Worksheets("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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.