我试图基本上将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中那样运作。
感谢任何帮助!
答案 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
这里唯一需要注意的是:在初始公式中加倍任何双引号。