要在VBA Excel中评估的产品
我是个新手。我需要在VBA Excel中计算和积 这是我的工作表:要在VBA Excel中评估的产品,vba,excel,excel-formula,formulas,Vba,Excel,Excel Formula,Formulas,我是个新手。我需要在VBA Excel中计算和积 这是我的工作表: 单元格D4包含特定日期(突出显示为黄色) 单元格D6包含新输入的日期(突出显示为红色) C列包含图例。(高亮显示为粉红色) 第J列包含月份。(高亮显示为绿色) 列K包含该特定事务的图例。(突出显示为橙色) 列I包含要求和的值(以蓝色突出显示) D9列及以后将显示和积的结果(突出显示为灰色) 我想做的是: 我将在单元格#D6中输入一个日期,该日期将在第J列的月份与单元格D6匹配的帮助下对第I列求和,如果匹配,则将第K列的图例
- 单元格D4包含特定日期(突出显示为黄色)
- 单元格D6包含新输入的日期(突出显示为红色)
- C列包含图例。(高亮显示为粉红色)
- 第J列包含月份。(高亮显示为绿色)
- 列K包含该特定事务的图例。(突出显示为橙色)
- 列I包含要求和的值(以蓝色突出显示)
- D9列及以后将显示和积的结果(突出显示为灰色)
SUMPRODUCT((MONTH($J$9:$J$12000)=MONTH($D$6))*($K$9:$K$12000=C10)*($I$9:$I$12000))
使用VBA的目的是使用While循环。当我在D6中输入一个特定月份的日期时,它应该递增或递减月份,并将它们添加到另一个指定的日期单元格D4(突出显示的黄色)
但当我使用上述公式时,它返回#值
上述范围是否正确?我已为您使用的工作表添加了正确的参考。在VBA中,首先需要指定“Sheet20”是工作表 因此,我将“Sheet20”替换为
工作表(“工作表20”)
,从而明确它是工作表集合的一部分
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
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