Excel VBA do kopiowania danych z innego skoroszytu bez otwierania

  • Udostępnij To
Hugh West

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.xlsm

3 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!

Hugh West jest bardzo doświadczonym trenerem i analitykiem Excela z ponad 10-letnim doświadczeniem w branży. Posiada tytuł licencjata w dziedzinie rachunkowości i finansów oraz tytuł magistra administracji biznesowej. Hugh ma pasję do nauczania i opracował unikalne podejście do nauczania, które jest łatwe do naśladowania i zrozumienia. Jego specjalistyczna wiedza na temat programu Excel pomogła tysiącom studentów i profesjonalistów na całym świecie doskonalić swoje umiejętności i osiągać doskonałe wyniki w karierze. Za pośrednictwem swojego bloga Hugh dzieli się swoją wiedzą ze światem, oferując bezpłatne samouczki programu Excel i szkolenia online, aby pomóc osobom indywidualnym i firmom w pełni wykorzystać swój potencjał.