2013-11-28 1 views
2

일부 SumIf를 수행하는 데 Excel 2010 VBA를 사용하고 있으며 음수 SumIfs를 수행해야합니다. 그래서 같은 SUMIFS 앞에 - 음 SUMIFS을 수행하는 공식을 사용하는 경우 나 단지 추가Worksheet.Function을 사용하여 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 

: 여기

는 I가 음수 SUMIFS을 수행해야 VBA 코드 샘플이다 =-SumIfs(..... VBA에서 어떻게이 작업을 수행 할 수 있습니까?

도움이나 조언을 주시면 감사하겠습니다.

+4

당신이'sumVal = 같은 의미 - 1 * Application.WorksheetFunction.SumIfs (...)'감사 @SiddharthRout –

+0

, 속임수를 썼는지 그! – Cornelius

답변

2

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")

+0

+1 그 뒤에있는 논리를 이해 하시길 바랍니다. –

+0

예, 저는 믿습니다. – Cornelius

+0

Kool ........ :) –

관련 문제