Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用worker.Function在VBA中进行负SumIfs_Vba_Excel_Excel 2010 - Fatal编程技术网

如何使用worker.Function在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

我正在使用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 = 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我希望你能理解它背后的逻辑?