在VBA中使用sumifs()的问题

时间:2017-06-28 18:35:27

标签: excel vba excel-vba sumifs

我试图基本上将excel中的公式转换为VBA。我使用SUMIFS()命令,并且它引用了已建立的表中的列。这是我到目前为止所得到的,但我不断收到对象错误。

Cells(2, 14).Value = 60 * Application.WorksheetFunction.SumIfs([Hours],[Operators], [@Operators], [Forging], [@Forging], [Operation], [@Operation], [Job No], [@[Job No]], [Time], ">" & [Time] - Time(1, 0, 0), [Time], "<" & [Time] + Time(1, 0, 0), [Workcenter], [@Workcenter])

我猜这不是你如何使用SUMIFS()所以你如何修改它以便它可以像在excel中那样运作。

感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

很难从VBA中利用结构化公式的力量。由于您有一个经过测试和运行的公式,您可以让单元格评估它,然后修复该值。例如:

With sheet1.Cells(2, 14)
  .Formula = "=SUMIFS([Hours],[Operators], [@Operators], [Forging], [@Forging], [Operation], [@Operation], [Job No], [@[Job No]], [Time], "">"" & [Time] - Time(1, 0, 0), [Time], ""<"" & [Time] + Time(1, 0, 0), [Workcenter], [@Workcenter])"
  .Value = .Value * 60
End with

这里唯一需要注意的是:在初始公式中加倍任何双引号。