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