Vba: jak wyodrębnić dane z innego skoroszytu
Aby wyodrębnić dane z innego skoroszytu, możesz użyć następującej składni w języku VBA:
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
To konkretne makro otwiera skoroszyt o nazwie my_data.xlsx znajdujący się w następującej lokalizacji:
C:\Users\Bob\Desktop\moje_dane.xlsx
Następnie kopiuje wszystkie dane z arkusza o nazwie Arkusz1 do tego skoroszytu i kopiuje je do arkusza bezpośrednio po pierwszym arkuszu w naszym aktualnie aktywnym skoroszycie.
Uwaga : Linia Application.ScreenUpdating = False informuje VBA, aby uruchomił ten proces w tle, dzięki czemu będzie działał szybciej.
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: Wyodrębnij dane z innego skoroszytu za pomocą języka VBA
Załóżmy, że mamy otwarty następujący skoroszyt programu Excel i go przeglądamy:
Załóżmy teraz, że mamy zamknięty inny skoroszyt, ale zawierający następujące dane:
Możemy użyć poniższego makra, aby wyodrębnić dane z arkusza 1 tego zamkniętego skoroszytu i wkleić je do nowego arkusza bezpośrednio po pierwszym arkuszu naszego aktualnie otwartego skoroszytu:
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
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Należy pamiętać, że dane z zamkniętego skoroszytu zostały wyodrębnione i wklejone jako nowy arkusz do naszego aktualnie aktywnego skoroszytu.
Możesz zmienić nazwę nowego arkusza, ponieważ jest on identyczny z bieżącym arkuszem.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:
VBA: Jak policzyć liczbę arkuszy w skoroszycie
VBA: jak wstawić wiele kolumn
VBA: jak wstawić wiele linii