Spis treści
W Microsoft Excel , Makra VBA Jeśli chcemy skopiować dane z innego skoroszytu bez jego otwierania, możemy to łatwo zrobić za pomocą Excel VBA W tym artykule dowiesz się Excel VBA aby skopiować dane z innego skoroszytu bez jego otwierania.
Pobierz Zeszyt ćwiczeń
Możesz pobrać zeszyt ćwiczeń i ćwiczyć z nimi.
Kopiowanie danych z innego skoroszytu.xlsm3 różne sposoby kopiowania danych z innego skoroszytu bez otwierania za pomocą Excel VBA
Czasami potrzebujemy danych z jakiegoś poprzedniego skoroszytu. Jeśli się spieszymy i potrzebujemy danych natychmiast, bez otwierania skoroszytu, możemy użyć polecenia Excel VBA . Dzięki Excelowi VBA możemy szybko skopiować dane z innych skoroszytów, w tym celu musimy tylko znać lokalizację tego konkretnego skoroszytu.
Do skopiowania danych użyjemy nazwy skoroszytu Szczegóły produktu I chcemy skopiować zakres danych ( B4:E10 ). Zbiór danych, który chcemy skopiować, zawiera kilka produktów, ich cenę sprzedaży, koszt towarów i marżę brutto. Przyjrzyjmy się różnym kryteriom kopiowania danych z innego skoroszytu.
1. kopiowanie danych arkusza z innego skoroszytu bez otwierania za pomocą VBA programu Excel
Możemy skopiować dane z arkusza, wykonując VBA W tym celu musimy przejść przez poniższe kroki.
KROKI:
- Po pierwsze, przejdź do Deweloper zakładka ze wstążki.
- Następnie należy kliknąć na Visual Basic aby otworzyć Edytor Visual Basic .
- Inny sposób na otwarcie Edytor Visual Basic to po prostu nacisnąć Alt + F11 .
- Lub kliknij prawym przyciskiem myszy na arkuszu, a następnie wybierz Wyświetl kod .
- Teraz zapisz Kod VBA poniżej.
VBA Kod:
Sub Copy_Data_from_Another_Workbook() Dim wb As Workbook Dim newwb As Workbook Dim rn1 As Range Dim rn2 As Range Set wb = Application.ActiveWorkbook With Application.FileDialog(msoFileDialogOpen) .Filters.Clear .Filters.Add "Excel 2007-13", "*.xlsx; *.xlsm; *.xlsa" .AllowMultiSelect = False .Show If .SelectedItems.Count> 0 Then Application.Workbooks.Open.SelectedItems(1) Set newwb = Application.ActiveWorkbook Set rn1 = Application.InputBox(prompt:="Select Data Range", Default:="A1", Type:=8) wb.Activate Set rn2 = Application.InputBox(prompt:="Select Destination Range", Default:="A1", Type:=8) rn1.Copy rn2 rn2.CurrentRegion.EntireColumn.AutoFit newwb.Close False End If End With End Sub.End With End Sub
- Na koniec uruchom kod, klikając przycisk Run Sub z drugiej strony, naciśnij skrót klawiaturowy F5 aby uruchomić kod.
UWAGA: Nie musisz modyfikować kodu, wystarczy skopiować i wkleić kod.
- Poprzez uruchomienie kodu Plik otwarty pojawi się okno z komputera.
- Następnie kliknij na zeszyt, do którego chcesz zebrać dane.
- Następnie należy kliknąć na OK przycisk.
- Teraz wybierz dane z pliku źródłowego, przeciągając je na zakres B5:E10 a następnie kliknij OK .
- Po wybraniu zakresu danych. Teraz wybierz zakres docelowy, w którym chcesz umieścić dane.
- I, kliknij OK .
- W końcu spowoduje to zamknięcie pliku źródłowego, a dane zostaną skopiowane na pliku docelowym.
Read More: Excel VBA: Kopiowanie zakresu do innego skoroszytu
Podobne lektury
- Jak wkleić ze schowka do Excela używając VBA
- Wyłącz kopiowanie i wklejanie w Excelu bez makr (z 2 kryteriami)
- Jak skopiować wykluczenie ukrytych wierszy w programie Excel (4 proste metody)
- Excel VBA do kopiowania wierszy do innego arkusza na podstawie kryteriów
- Jak używać VBA do wklejania wartości bez formatowania w Excelu
2. VBA do kopiowania zakresu danych z innego skoroszytu bez otwierania w Excelu
Poprzez użycie VBA W poniższym kodzie możemy skopiować dane z zakresu danych. Aby to osiągnąć musimy wykonać poniższe kroki.
KROKI:
- Aby rozpocząć, przejdź do Deweloper na wstążce.
- Po drugie, otwórz Edytor Visual Basic klikając na Visual Basic lub naciskając Alt + F11 .
- Lub po prostu kliknij prawym przyciskiem myszy na arkuszu i wybierz Wyświetl kod aby otworzyć Edytor Visual Basic .
- Po tym, zapisz Kod VBA tam.
VBA Kod:
Sub CollectData() Dim rgTarget As Range Set rgTarget = ActiveSheet.Range("B2:E10") "gdzie umieścić skopiowane dane. rgTarget.FormulaArray = "='D:‖[Product_Details.xlsx]Sheet1'!$B$4:$E$10‖ rgTarget.Formula = rgTarget.Value End Sub.
- Tutaj uruchom kod używając Uruchom Sub lub naciśnij skrót klawiaturowy F5 aby uruchomić kod.
UWAGA: Nie musisz modyfikować kodu, wszystko, co musisz zrobić, to po prostu zmienić zakres zgodnie z danymi źródłowymi.
- I wreszcie dane są teraz kopiowane z innego skoroszytu do aktywnego skoroszytu.
Read More: Makro do kopiowania i wklejania z jednego arkusza do drugiego (15 metod)
3. Excel VBA do kopiowania danych z innego skoroszytu bez otwierania za pomocą przycisku poleceń
Dane z innego skoroszytu możemy skopiować za pomocą przycisku polecenia na VBA Aby to osiągnąć, musimy wykonać czynności przedstawione poniżej.
KROKI:
- Po pierwsze, aby umieścić Przycisk polecenia , przejdź do Deweloper tab.
- Po drugie, kliknij na Wkładka menu rozwijane.
- Po trzecie, kliknij na Przycisk polecenia .
- Umieszczamy Produkt na komórkę A1 ponieważ jest to nazwa arkusza naszego pliku źródłowego. I ustawiamy Przycisk polecenia , po prawej stronie nazwy arkusza pliku źródłowego. Utworzyliśmy teraz tabelę, potrzebujemy tylko danych, które znajdują się w innym skoroszycie.
- W ten sam sposób przejdź do Deweloper na wstążce.
- Następnie należy kliknąć na Visual Basic lub naciśnij Alt + F11 aby uruchomić Edytor Visual Basic .
- Można również otworzyć Edytor Visual Basic klikając prawym przyciskiem myszy na arkusz i wybierając Wyświetl kod .
- Teraz napisz. VBA kod w dół.
VBA Kod:
Private Sub CommandButton1_Click() Dim sourceworkbook As Workbook Dim currentworkbook As Workbook Set currentworkbook = ThisWorkbook Set sourceworkbook = Workbooks.Open("D:\Products_Details.xlsx") sourceworkbook.Worksheets("Product").Range("B5:E10").Copy currentworkbook.Activate currentworkbook.Worksheets("Sheet3").Activate currentworkbook.Worksheets("Sheet3").Cells(4, 1).Select ActiveSheet.Pastesourceworkbook.Close Set sourceworkbook = Nothing Set currentworkbook = Nothing ThisWorkbook.Activate Worksheets("Sheet3").Range("A2").Select End Sub
- Następnie należy zapisać kod, naciskając Ctrl + S .
UWAGA: Możesz skopiować kod, musisz tylko zmienić ścieżkę pliku i zakres danych.
- I wreszcie, jeśli klikniesz na CommandButton1 spowoduje to skopiowanie danych z innego skoroszytu bez jego otwierania.
Read More: Makro do kopiowania danych z jednego skoroszytu do drugiego na podstawie kryteriów
Wniosek
Powyższe kryteria są wskazówkami do kopiowania danych z innego skoroszytu bez otwierania go za pomocą Excel VBA Jeśli masz jakieś pytania, sugestie lub opinie, proszę daj nam znać w sekcji komentarzy. Możesz też rzucić okiem na nasze inne artykuły w ExcelWIKI.com blog!