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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *