Vba: come estrarre i dati da un'altra cartella di lavoro


È possibile utilizzare la seguente sintassi in VBA per estrarre dati da un’altra cartella di lavoro:

 SubExtractData ()
    
    'turn off screen updates to make this run faster
    Application.ScreenUpdating = False
    
    'specify workbook we want to extract data from
    Set wb = Workbooks.Open(" C:\Users\bobbi\OneDrive\Desktop\my_data.xlsx ")
    
    'extract all data from Sheet1 and paste as new sheet in current workbook
    wb.Sheets(" Sheet1 ").Copy After:=ThisWorkbook.Sheets(1)
    
    'do not save any changes to workbook we extract data from
    wb.Close SaveChanges:=False
    
    'turn screen updating back on
    Application.ScreenUpdating = True
    
End Sub

Questa particolare macro apre la cartella di lavoro denominata my_data.xlsx situata nel seguente percorso:

C:\Users\Bob\Desktop\my_data.xlsx

Quindi copia tutti i dati dal foglio chiamato Foglio1 in questa cartella di lavoro e li copia nel foglio direttamente dopo il primo foglio nella nostra cartella di lavoro attualmente attiva.

Nota : la riga Application.ScreenUpdating = False indica a VBA di eseguire questo processo in background in modo che venga eseguito più velocemente.

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: estrarre i dati da un’altra cartella di lavoro utilizzando VBA

Diciamo che abbiamo la seguente cartella di lavoro di Excel aperta e la stiamo visualizzando:

Supponiamo ora di avere un’altra cartella di lavoro chiusa ma contenente i seguenti dati:

Possiamo utilizzare la seguente macro per estrarre i dati dal foglio 1 di questa cartella di lavoro chiusa e incollarli in un nuovo foglio direttamente dopo il primo foglio della nostra cartella di lavoro attualmente aperta:

 SubExtractData ()
    
    'turn off screen updates to make this run faster
    Application.ScreenUpdating = False
    
    'specify workbook we want to extract data from
    Set wb = Workbooks.Open(" C:\Users\bobbi\OneDrive\Desktop\my_data.xlsx ")
    
    'extract all data from Sheet1 and paste as new sheet in current workbook
    wb.Sheets(" Sheet1 ").Copy After:=ThisWorkbook.Sheets(1)
    
    'do not save any changes to workbook we extract data from
    wb.Close SaveChanges:=False
    
    'turn screen updating back on
    Application.ScreenUpdating = True
    
End Sub

Quando eseguiamo questa macro, riceviamo il seguente output:

Tieni presente che i dati della cartella di lavoro chiusa sono stati estratti e incollati come un nuovo foglio nella nostra cartella di lavoro attualmente attiva.

Sentiti libero di rinominare il nuovo foglio poiché è identico al foglio corrente.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:

VBA: come contare il numero di fogli in una cartella di lavoro
VBA: come inserire più colonne
VBA: come inserire più righe

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *