如何在VBA中使用Worksheet.Function做一个负SumIfs

我正在使用Excel 2010 VBA来执行一些SumIfs,我需要它执行一个负的SumIfs。

下面是一个VBA代码示例,我需要它执行一个负的SumIfs:

'Define the Vidir Machine Income and Trail Balance ranges Dim vmIncRng As Range, trBalRng As Range, VMI As Worksheet, TRL As Worksheet Set VMI = Sheets("VM Income") Set TRL = Sheets("Exec Trial Balance") 'Define my Ranges Set vmIncRng = Sheets("VM Income").Range("S4:S52") With Worksheets("Exec Trial Balance") Set trBalRng = .Range("a2", .Range("F2").End(xlDown)) End With 'Overwrite YTD with summed values from Trial Balance Dim sumVal As Double For Each c In vmIncRng If c.Value <> "" Then 'Excel Formula: =-SUMIFS('Exec Trial Balance'!E:E,'Exec Trial Balance'!F:F,S6,'Exec Trial Balance'!A:A,"Arborg",'Exec Trial Balance'!B:B,"m1") 'I need the following line to perform the negative sum sumVal = Application.WorksheetFunction.SumIfs(TRL.Range("E:E"), TRL.Range("F:F"), c, TRL.Range("A:A"), "Arborg", TRL.Range("B:B"), "m1") c.Offset(0, 1).Value = sumVal End If Next c 

当使用一个公式来执行一个负的SumIfs时,我只需要在SumIfs之前添加一个像so =-SumIfs(.....如何在VBA中执行此操作?

任何帮助或build议将不胜感激。

多亏了Siddharth Rout。

代替:

sumVal = Application.WorksheetFunction.SumIfs(TRL.Range("E:E"), TRL.Range("F:F"), c, TRL.Range("A:A"), "Arborg", TRL.Range("B:B"), "m1")

我在Application.WorksheetFunction之前加了-1 *

sumVal = -1 * Application.WorksheetFunction.SumIfs(TRL.Range("E:E"), TRL.Range("F:F"), c, TRL.Range("A:A"), "Arborg", TRL.Range("B:B"), "m1")