Вставьте этот код в модуль в NEWCALC.xlsx
и запустите как макрос. Он выведет результат вычисления SumIfs в ячейку в NEWCALC
.
Sub CalculateSumIfsOnDATADUMP()
Dim wb As Workbook
Dim Vstatus As Range, Team As Range, WF_Paydate As Range, Writer_Fee As Range
Dim WFPAID As Variant
Dim rng As Range
Dim colCOUNT As Long
'// turn off screen updating
Application.ScreenUpdating = False
'// open the source workbook as read only
Set wb = Workbooks.Open("U:\DATADUMP.xlsx", ReadOnly:=True)
ThisWorkbook.ActiveSheet.Activate
For Each rng In Application.Selection
rev_date = rng.Value
With wb.Worksheets("KRONOS")
'// Set range variables for SumIfs calculation
'// (NOTE: 'Writer_Fee' range needs to be supplied)
Set Writer_Fee = .Range("Something")
Set Vstatus = .Range("$DL:$DL")
Set Team = .Range("$DO:$DO")
Set WF_Paydate = .Range("$DK:$DK")
'// Do the SumIfs Calculation, and store in WFAID
WFPAID = Application.WorksheetFunction.SumIfs(Writer_Fee, _
Team, "<>9", _
Vstatus, "<>rejected", _
Vstatus, "<>unverified", _
WF_Paydate, "=" & rev_date)
End With
'// Output the calculation result to a cell in the ActiveSheet
ActiveSheet.Cells(rng.Row, rng.Column + Selection.Columns.Count) = WFPAID
Next rng
'// close the source workbook without saving any changes
wb.Close False
'// turn on screen updating
Application.ScreenUpdating = True
End Sub
EDIT
Я изменил код, чтобы прочитать выбранный диапазон, и вывести результат SumIfs в столбце рядом с ним.