Utilizzo di 'SumIf' in cartella di lavoro chiusa (file)

Voglio utilizzare la function SumIf in un'intervallo di dati in un file Excel chiuso. Ecco il mio codice per get i dati dal file chiuso:

 Set appxl = CreateObject("Excel.application") Dim myfile As Window Dim currentSheet As Worksheet Dim lastRow As Double Dim sourceFileName As String PathReplace = Replace(ActiveWorkbook.Path, "Not issued TECO", "Daily") sourceFileName = "Not_Issued_Template.xlsm" ' With appxl .Workbooks.Open Path & "\" & sourceFileName .Visible = False End With Set myfile = appxl.Windows(sourceFileName) myfile.Activate Set currentSheet = appxl.Sheets("Sheet1") .Visible = False Set appxl = CreateObject("Excel.application") Dim myfile As Window Dim currentSheet As Worksheet Dim lastRow As Double Dim sourceFileName As String PathReplace = Replace(ActiveWorkbook.Path, "Not issued TECO", "Daily") sourceFileName = "Not_Issued_Template.xlsm" ' With appxl .Workbooks.Open Path & "\" & sourceFileName .Visible = False End With Set myfile = appxl.Windows(sourceFileName) myfile.Activate Set currentSheet = appxl.Sheets("Sheet1") Fine con Set appxl = CreateObject("Excel.application") Dim myfile As Window Dim currentSheet As Worksheet Dim lastRow As Double Dim sourceFileName As String PathReplace = Replace(ActiveWorkbook.Path, "Not issued TECO", "Daily") sourceFileName = "Not_Issued_Template.xlsm" ' With appxl .Workbooks.Open Path & "\" & sourceFileName .Visible = False End With Set myfile = appxl.Windows(sourceFileName) myfile.Activate Set currentSheet = appxl.Sheets("Sheet1") 

Il codice funziona bene quando sto cercando per esempio di get i dati dalla cella A1 o qualcosa del genere. Posso anche copiare tutta la gamma, ma solo copiare.

 currentSheet.Range("A:A").Copy 

Quando eseguo questo codice, copiamo quella fascia di dati e posso incollare manualmente ma quando sto cercando di fare:

 currentSheet.Range("A:A").Copy Destination:=ActiveWorkbook.Worksheets(5).Range("A:A") 

Ottengo 1004 errori. Comunque ho cercato di usare la function SumIf :

 ActiveWorkbook.Worksheets(4).Range("A2") = Application.SumIf(currentSheet.Range("A:A"), "E2", currentSheet.Range("B:B")) 

E non vuole lavorare. Tutti i tipi di funzioni che utilizzano l'intervallo di dati da quel file chiuso sembrano non funzionare. Solo quando cerco di get i dati da una sola cella funziona:

 ActiveWorkbook.Worksheets(5).Range("A1") = currentSheet.Range("A1") 

Ma quando cambio gamma a:

 ActiveWorkbook.Worksheets(5).Range("A1:A2") = currentSheet.Range("A1:A2") 

Le celle sono vuote.

Se SumIF da un intervallo di dati inserito in un altro file non è ansible, posso solo copiare quel range di dati (A: A) e (B: B) da quel file chiuso in un altro foglio nel file corrente e fare SumIf ma, come ho detto , Non riesco neanche a copiare l'intervallo di dati.

C'è comunque per risolvere questo problema?