Estrarre i dati da una cartella di lavoro chiusa

Sommario

L'estrazione di dati da un file chiuso in un'altra cartella di lavoro è una richiesta comune da parte della maggior parte degli utenti excel. Vorrebbero estrarre o consolidare i dati da file chiusi; tuttavia, questo non è possibile. C'è una soluzione che aiuta a risolvere questo problema. La soluzione sta usando il codice Macro.

Domanda: Ogni giorno, passo il tempo a copiare i dati da un file all'altro. Ci sono due file "Open.xls" e "Closed.xls" e voglio copiare i dati da "Closed.xls" a "Open.xls" tramite il codice VBA.

Cose fondamentali 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 per es. “Apri.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, viene inserito #N/A. Utilizzando il metodo specialcells, puoi quindi eliminare tutti gli errori #N/A e modificare la formula in valori

Per cominciare, salveremo due file excel 1) Open.xls 2) Closed.xls nel percorso “D:\Test Folder”

Di seguito è riportato lo snapshot 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 VB

  • Fare clic sulla scheda Sviluppatore
  • Dal gruppo Codice, seleziona Visual Basic

  • Copia il codice seguente in ThisWorkbook (Closed.xls)
 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _ Cancel As Boolean) 'Inserisci l'indirizzo UsedRange di Sheet1 Closed.xls (questa cartella di lavoro)' --- Comment Sheet2.Cells(1, 1) = Sheet1.UsedRange.Address End Sub 

  • Per estrarre i dati in “Open.xls”, copiare il seguente codice nel Modulo Standard
 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) Con Sheet1.Range(AreaAddress) .FormulaR1C1 = "=IF('D:\Test Folder\" & "[Closed.xls]Sheet1'!RC="""",NA(),'D: \Test Folder\" & _ "[Closed.xls]Sheet1'!RC)" On Error Riprendi successivo .SpecialCells(xlCellTypeFormulas, xlErrors).Clear On Error GoTo 0 .Value = .Value End With End Sub 

  • Copia il seguente codice in ThisWorkbook (Open.xls)
 Private Sub Workbook_Open() Esegui "Importdata" End Sub 

Ora i codici VBA sono tutti impostati; tutto ciò che dobbiamo fare è aprire il nome del file "Open.xls". Di seguito è riportata l'istantanea del file "Open.xls":

Il codice non è limitato alla copia della cella da A1.usedrange; il codice sceglierà l'intervallo iniziale 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 di copiare e incollare manualmente.

Se ti è piaciuto il nostro blog, condividilo con i tuoi amici su Facebook. E puoi anche seguirci su Twitter e Facebook.

Ci piacerebbe avere tue notizie, facci sapere come possiamo migliorare, completare o innovare il nostro lavoro e renderlo migliore per te. Scrivici al sito di posta elettronica

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave