Chiamare il sottogruppo Generico in Excel con le modifiche alle variables in string, lungo un formato di intervallo

Ho il seguente codice che deve filtrare una gamma di dati di materiale in base a un elemento specificato (se l'elemento è nella breve descrizione deve filtrare) e copiarlo in un nuovo foglio di calcolo. Questo dovrebbe essere fatto più volte e per essere efficiente, vorrei avere sottoinsieme generico e chiamarlo quando ne avrei bisogno (e quindi cambiare le variables specifiche di un elemento). Il codice generico è il seguente:

Sub generic_item_quantity(ByVal new_sheet As String, ByVal item As String, ByVal rngcurrent As Range, ByVal lastcellcurrent As Long) 'ADD ITEM SHEET FOR CURRENT MONTH AND COPY DATA, if already exists, delete it On Error Resume Next Sheets(new_sheet).Delete On Error GoTo 0 Worksheets.Add ActiveSheet.Name = new_sheet ' Filter for the item in current material sheet Sheets("Materials Current").Select lastcellcurrent = Sheets("Materials current").Cells(Sheets("Materials current").Rows.count, "A").End(xlUp).Row - 1 Set rngcurrent = Sheets("Materials Current").Range("A1:C" & lastcellcurrent + 1) FilterField = WorksheetFunction.Match("Short Description", rngcurrent.Rows(1), 0) 'Turn on filter if not already turned on If ActiveSheet.AutoFilterMode = False Then rngcurrent.AutoFilter 'Filter for item rngcurrent.AutoFilter Field:=FilterField, Criteria1:=Array( _ "=*item*"), Operator:=xlFilterValues ' Select the filtered range and copy to the new sheet Sheets("Materials Current").Range("A1:C1").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets(new_sheet).Select Range("A1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False 

E poi più tardi nel codice che voglio call questo sottotitolo più volte ma con diverse variables come sopra. Attualmente il mio codice di chiamata è il seguente (Questo codice è per un object chiamato coltello, altra sarà handle ecc.):

 generic_item_quantity "Knife current", "Knife", rngKNIFEcurrent, lastcellKNIFEcurrent 

Tuttavia, ottengo un codice di errore che indica l'errore di compilazione: tipo disallineamento. Si prega di notare che il codice da solo (quando lo faccio specifico articolo) funziona perfettamente, è solo il codice generico che dà problemi. Assistenza