如何使用worker.Function在VBA中进行负SumIfs
我正在使用Excel2010VBA执行一些SumIfs,我需要它来执行负SumIfs 下面是一个VBA代码示例,我需要它来执行负SumIfs:如何使用worker.Function在VBA中进行负SumIfs,vba,excel,excel-2010,Vba,Excel,Excel 2010,我正在使用Excel2010VBA执行一些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 = Sh
'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
”定义Vidir机器收入和跟踪余额范围
Dim vmIncRng As范围、trBalRng As范围、VMI As工作表、TRL As工作表
设置VMI=工作表(“VM收入”)
设置TRL=表(“执行试算表”)
“定义我的范围
设置vmIncRng=表格(“VM收入”)。范围(“S4:S52”)
带工作表(“执行试算表”)
设置trBalRng=.Range(“a2”和.Range(“F2”).End(xlDown))
以
'用试算表中的总和覆盖年初至今
暗淡的萨姆瓦尔是双重的
对于vmIncRng中的每个c
如果c.值为“”,则
'Excel公式:=-SUMIFS('Exec试算表'!E:E,'Exec试算表'!F:F,S6,'Exec试算表'!A:A,“ARBOG”,'Exec试算表'!B:B,“m1”)
'我需要以下行来执行负和
sumVal=Application.WorksheetFunction.SumIfs(TRL.Range(“E:E”)、TRL.Range(“F:F”)、c、TRL.Range(“A:A”)、“Arborg”、TRL.Range(“B:B”)、“m1”)
c、 偏移量(0,1)。值=总和
如果结束
下一个c
当使用公式执行负SumIfs时,我只需在SumIfs前面添加一个-如so=-SumIfs(..…
如何在VBA中执行此操作
任何帮助或建议都将不胜感激。多亏了悉达思·劳特,我们才得以解决 而不是:
sumVal=Application.WorksheetFunction.SumIfs(TRL.Range(“E:E”)、TRL.Range(“F:F”)、c、TRL.Range(“A:A”)、“Arborg”、TRL.Range(“B:B”)、“m1”)
我在应用程序.WorksheetFunction
之前添加了-1*
sumVal=-1*Application.WorksheetFunction.SumIfs(TRL.Range(“E:E”)、TRL.Range(“F:F”)、c、TRL.Range(“A:A”)、“arbog”、TRL.Range(“B:B”)、“m1”)
你的意思是像这样的sumVal=-1*Application.WorksheetFunction.SumIfs(…)
@SiddharthRout谢谢你,这就成功了!+1我希望你能理解它背后的逻辑?