Excel VBA pentru a copia date dintr-un alt registru de lucru fără a deschide

  • Imparte Asta
Hugh West

În Microsoft Excel , Macros VBA poate rezolva cu ușurință o gamă largă de probleme. Dacă dorim să copiem date dintr-un alt registru de lucru fără a deschide registrul de lucru, o putem face cu ușurință folosind Excel VBA În acest articol, veți afla Excel VBA pentru a copia date dintr-un alt registru de lucru fără a-l deschide.

Descărcați caietul de practică

Puteți descărca caietul de lucru și exersa cu ele.

Copierea unui alt registru de lucru Data.xlsm

3 moduri diferite de a copia datele dintr-un alt registru de lucru fără a le deschide cu Excel VBA

Uneori, avem nevoie de date dintr-un registru de lucru anterior. Dacă ne grăbim și avem nevoie de date imediat, fără a deschide registrul de lucru, putem utiliza funcția Excel VBA Cu Excel VBA, putem copia rapid datele din alte registre de lucru, pentru aceasta trebuie doar să știm locația registrului de lucru respectiv.

Pentru a copia datele vom folosi numele registrului de lucru Detalii_produs . și dorim să copiem intervalul de date ( B4:E10 ). Setul de date pe care dorim să îl copiem conține câteva produse, prețul de vânzare al acestora, costul mărfurilor și marjele de profit brut. Să analizăm diferite criterii de copiere a datelor dintr-un alt registru de lucru.

1. Copiați datele unei foi de calcul dintr-un alt registru de lucru fără a deschide cu Excel VBA

Putem copia date dintr-o foaie urmând instrucțiunile VBA Pentru aceasta, trebuie să parcurgem pașii de mai jos.

ETAPE:

  • În primul rând, mergeți la Dezvoltator din panglica de pe panglică.
  • După aceea, faceți clic pe Visual Basic pentru a deschide fereastra Editor Visual Basic .
  • O altă modalitate de a deschide Editor Visual Basic este pur și simplu să apăsați Alt + F11 .

  • Sau, faceți clic dreapta pe foaie, apoi selectați Vezi codul .

  • Acum, scrieți Cod VBA mai jos.

Cod VBA:

 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 SubEnd With End Sub 
  • În cele din urmă, rulați codul făcând clic pe butonul Run Sub pe de altă parte, apăsați comanda rapidă de la tastatură F5 pentru a rula codul.

NOTĂ: Nu este nevoie să modificați codul, ci doar să copiați și să lipiți codul.

  • Prin rularea codului Deschidere fișier va apărea o fereastră de la computerul dumneavoastră.
  • După aceea, faceți clic pe registrul de lucru în care doriți să colectați datele.
  • Apoi, faceți clic pe butonul OK buton.

  • Acum, selectați datele din fișierul sursă trăgând peste intervalul B5:E10 și apoi faceți clic pe OK .

  • După selectarea intervalului de date, selectați acum intervalul de destinație în care doriți să plasați datele.
  • Și, faceți clic pe OK .

  • În final, acest lucru va închide fișierul sursă, iar datele vor fi copiate în fișierul de destinație.

Citește mai mult: Excel VBA: Copierea intervalului în alt registru de lucru

Lecturi similare

  • Cum să lipiți din clipboard în Excel folosind VBA
  • Dezactivarea copierii și lipirii în Excel fără macro-uri (cu 2 criterii)
  • Cum se copiază excluderea rândurilor ascunse în Excel (4 metode ușoare)
  • Excel VBA pentru a copia rândurile într-o altă foaie de lucru pe baza unor criterii
  • Cum să utilizați VBA pentru a lipi valori numai cu formatare în Excel

2. VBA pentru a copia un interval de date dintr-un alt registru de lucru fără a deschide în Excel

Prin utilizarea VBA de mai jos, putem copia date dintr-un interval de date. Trebuie să urmăm pașii de mai jos pentru a realiza acest lucru.

ETAPE:

  • Pentru a începe, navigați la pagina Dezvoltator de pe panglică.
  • În al doilea rând, deschideți fereastra Editor Visual Basic făcând clic pe Visual Basic sau prin apăsarea Alt + F11 .
  • Sau pur și simplu faceți clic dreapta pe foaie și selectați Vezi codul pentru a deschide fereastra Editor Visual Basic .

  • După aceea, scrieți Cod VBA acolo.

Cod VBA:

 Sub CollectData() Dim rgTarget As Range Set rgTarget = ActiveSheet.Range("B2:E10") 'unde se pun datele copiate. rgTarget.FormulaArray = "='D:\[Product_Details.xlsx]Sheet1'!$B$4:$E$10" rgTarget.Formula = rgTarget.Value End Sub 
  • Aici, rulați codul folosind Rulați Sub sau apăsați comanda rapidă de la tastatură F5 pentru a rula codul.

NOTĂ: Nu este nevoie să modificați codul, tot ce trebuie să faceți este să schimbați intervalul în funcție de datele sursă.

  • Și, în cele din urmă, datele sunt acum copiate dintr-un alt registru de lucru în registrul de lucru activ.

Citește mai mult: Macro pentru a copia și lipi de pe o foaie de lucru pe alta (15 metode)

3. Excel VBA pentru a copia date dintr-un alt registru de lucru fără a deschide prin utilizarea butonului de comandă

Putem copia date dintr-un alt registru de lucru folosind butonul de comandă din fereastra de lucru VBA Pentru a realiza acest lucru, trebuie să urmăm pașii descriși mai jos.

ETAPE:

  • În primul rând, pentru a pune un Butonul de comandă , mergeți la Dezvoltator tab.
  • În al doilea rând, faceți clic pe butonul Introduceți meniul derulant.
  • În al treilea rând, faceți clic pe butonul Butonul de comandă .

  • Am pus Produs pe celulă A1 , deoarece este numele foii noastre de fișier sursă. Și setăm fișierul Butonul de comandă , în partea dreaptă a numelui foii din fișierul sursă. Acum am creat tabelul, avem nevoie doar de datele care se află într-un alt registru de lucru.

  • În același mod, navigați la pagina Dezvoltator de pe panglică.
  • În continuare, faceți clic pe Visual Basic sau apăsați Alt + F11 pentru a lansa programul Editor Visual Basic .
  • De asemenea, puteți deschide fereastra Editor Visual Basic făcând clic dreapta pe foaie și selectând Vezi codul .

  • Acum, scrieți VBA cod jos.

Cod VBA:

 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").Activate Worksheets("Sheet3").Range("A2").Select End Sub 
  • Apoi, salvați codul apăsând Ctrl + S .

NOTĂ: Puteți copia codul, trebuie doar să schimbați calea fișierului și intervalul de date.

  • Și, în cele din urmă, dacă faceți clic pe butonul CommandButton1 aceasta va copia datele dintr-un alt registru de lucru fără a-l deschide.

Citește mai mult: Macro pentru a copia date dintr-un registru de lucru în altul pe baza unor criterii

Concluzie

Criteriile de mai sus sunt îndrumări pentru a copia date dintr-un alt registru de lucru fără a-l deschide cu Excel VBA Sperăm că acest lucru vă va fi de ajutor! Dacă aveți întrebări, sugestii sau feedback, vă rugăm să ne anunțați în secțiunea de comentarii. Sau puteți arunca o privire la celelalte articole din secțiunea ExcelWIKI.com blog!

Hugh West este un trainer și analist Excel cu o experiență de peste 10 ani în industrie. Deține o diplomă de licență în contabilitate și finanțe și un master în administrarea afacerilor. Hugh are o pasiune pentru predare și a dezvoltat o abordare unică de predare care este ușor de urmărit și de înțeles. Cunoștințele sale experte despre Excel au ajutat mii de studenți și profesioniști din întreaga lume să-și îmbunătățească abilitățile și să exceleze în cariera lor. Prin blogul său, Hugh își împărtășește cunoștințele lumii, oferind tutoriale gratuite Excel și instruire online pentru a ajuta persoanele și companiile să-și atingă întregul potențial.