Буду признателен, если кто-то поможет в том, что, вероятно, простое решение. Ниже приведен краткий код для пользовательской функции в Excel.
Я называю столбцы (в большой электронной таблице) для расчета в SUMIFS
расчете. Если я хочу, чтобы те же столбцы были названы и использовать переменные WRITEOFF1
и WRITEOFF
"в другой пользовательской функции, как я могу это сделать? Я попытался установить имена столбцов в подпрограмме (в том же VBA Project и Module), а затем попытался вызвать подпрограмму, но, похоже, я не могу передать имена другой функции.
Может кто-нибудь помочь с решением?
Заранее большое спасибо.
Public Function WRITEOFF(rev_date As Variant) As Variant
Application.Volatile (True)
Set Order_Type = Sheets("KRONOS").Range("$D:$D")
Set Final_Price = Sheets("KRONOS").Range("$H:$H")
Set PaidAlt = Sheets("KRONOS").Range("$I:$I")
Set Excl_Rev = Sheets("KRONOS").Range("$K:$K")
Set PAmount1 = Sheets("KRONOS").Range("$O:$O")
Set First_PD = Sheets("KRONOS").Range("$Q:$Q")
Set PMethod1 = Sheets("KRONOS").Range("$R:$R")
Set PAmount2 = Sheets("KRONOS").Range("$T:$T")
Set PayDate2 = Sheets("KRONOS").Range("$V:$V")
Set PMethod2 = Sheets("KRONOS").Range("$W:$W")
Set PAmount3 = Sheets("KRONOS").Range("$Y:$Y")
Set PayDate3 = Sheets("KRONOS").Range("$AA:$AA")
Set PMethod3 = Sheets("KRONOS").Range("$AB:$AB")
Set PAmount4 = Sheets("KRONOS").Range("$AD:$AD")
Set PayDate4 = Sheets("KRONOS").Range("$AF:$AF")
Set PMethod4 = Sheets("KRONOS").Range("$AG:$AG")
Set Vstatus = Sheets("KRONOS").Range("$DL:$DL")
Set Team = Sheets("KRONOS").Range("$DO:$DO")
WRITEOFF1 = Application.WorksheetFunction.SumIfs( _
PAmount1 _
, Team, "<>9" _
, Vstatus, "<>rejected", Vstatus, "<>unverified" _
, First_PD, rev_date _
, PMethod1, "Write Off")
WRITEOFF2 = Application.WorksheetFunction.SumIfs( _
PAmount2 _
, Team, "<>9" _
, Vstatus, "<>rejected", Vstatus, "<>unverified" _
, PayDate2, rev_date _
, PMethod2, "Write Off")
WRITEOFF3 = Application.WorksheetFunction.SumIfs( _
PAmount3 _
, Team, "<>9" _
, Vstatus, "<>rejected", Vstatus, "<>unverified" _
, PayDate3, rev_date _
, PMethod3, "Write Off")
WRITEOFF4 = Application.WorksheetFunction.SumIfs( _
PAmount4 _
, Team, "<>9" _
, Vstatus, "<>rejected", Vstatus, "<>unverified" _
, PayDate4, rev_date _
, PMethod4, "Write Off")
WRITEOFF = WRITEOFF1 + WRITEOFF2 + WRITEOFF3 + WRITEOFF4
End Function