Estrarre i dati da una cartella di lavoro chiusa
_ L’estrazione dei dati da un file chiuso in un’altra cartella di lavoro è una richiesta comune dalla maggior parte degli utenti di Excel. Vorrebbero estrarre o consolidare i dati da file chiusi; tuttavia, questo non è possibile. C’è una soluzione alternativa che aiuta a risolvere questo problema. La soluzione è usare il codice Macro._
Domanda: Ogni giorno, passo il tempo a copiare i dati da un file a un altro. Ci sono due file “Open.xls” e “Closed.xls” e voglio copiare i dati da “Closed.xls” a “Open.xls” tramite codice VBA.
===
Cose chiave da sapere:
La prima cosa è che dovremmo conoscere “Usedrange” della cartella di lavoro chiusa, ad esempio “Closed.xls” all’interno della cartella di lavoro aperta, ad es. “Open.xls” Possiamo usare la funzione IF in Usedrange della cartella di lavoro “Closed.xls” all’interno della cartella di lavoro “Open.xls” e estrarrà i dati dalla cartella di lavoro “Closed.xls” * Se la cella di riferimento è vuota, #N / A è messo in atto. Utilizzando il metodo specialcells, è quindi possibile eliminare tutti gli errori # N / A e modificare la formula in valori Per iniziare, salveremo due file excel 1) Open.xls 2) Closed.xls nel percorso “D: \ Test Cartella “Di seguito è riportata l’istantanea della cartella di lavoro” Closed.xls “:
Per salvare automaticamente i dati dal file “Closed.xls” al file “Open.xls”, dobbiamo seguire i passaggi seguenti per avviare l’editor di VB. * Copia il codice sottostante in ThisWorkbook (Closed.xls)
-
Per estrarre i dati in “Open.xls”, copiare il seguente codice nel modulo standard
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _ Cancel As Boolean) 'Put in the UsedRange Address of Sheet1 Closed.xls (this workbook)' --- Comment Sheet2.Cells(1, 1) = Sheet1.UsedRange.Address End Sub
-
Copia il seguente codice in ThisWorkbook (Open.xls)
Sub Importdata() Dim AreaAddress As String Sheet1.UsedRange.Clear Sheet1.Cells(1, 1) = "= 'D:\Test Folder\" & "[Closed.xls]Sheet2'!RC" AreaAddress = Sheet1.Cells(1, 1) With Sheet1.Range(AreaAddress) .FormulaR1C1 = "=IF('D:\Test Folder\" & "[Closed.xls]Sheet1'!RC="""",NA(),'D:\Test Folder\" & _ "[Closed.xls]Sheet1'!RC)" On Error Resume Next .SpecialCells(xlCellTypeFormulas, xlErrors).Clear On Error GoTo 0 .Value = .Value End With End Sub
Ora i codici VBA sono tutti impostati; tutto quello che dobbiamo fare è aprire il nome del file “Open.xls”. Di seguito è riportata l’istantanea del file “Open.xls”:
Private Sub Workbook_Open() Run "Importdata" End Sub
Il codice non è limitato alla copia della cella da A1.usedrange; il codice sceglierà l’intervallo di partenza e funzionerà perfettamente. I file sono disponibili per il download e ti consigliamo di provare.
===
Conclusione: con il codice VBA, possiamo automatizzare l’attività di estrazione dei dati senza aprire la cartella di lavoro di destinazione e ci risparmiamo dal copiare e incollare manualmente.
Se i nostri blog ti sono piaciuti, condividilo con i tuoi amici su Facebook. E anche tu puoi seguirci su Twitter e Facebook.
_ Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare, integrare o innovare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]_