Trageți datele dintr-un registru de lucru închis

Anonim

Extragerea datelor dintr-un fișier închis într-un alt registru de lucru este o cerere obișnuită de către majoritatea utilizatorilor Excel. Ar dori să extragă sau să consolideze date din fișiere închise; cu toate acestea, acest lucru nu este posibil. Există o soluție care ajută la rezolvarea acestei probleme. Soluția este utilizarea codului Macro.

Întrebare: Zilnic, îmi petrec timpul copiind date dintr-un fișier în altul. Există două fișiere „Open.xls” și „Closed.xls” și vreau să copiez date din „Closed.xls” în „Open.xls” prin cod VBA.

Lucruri cheie de știut:

  • Primul lucru este că ar trebui să cunoaștem „Usedrange” din registrul de lucru închis, adică „Closed.xls” din registrul de lucru deschis, de ex. „Open.xls”
  • Putem folosi funcția IF în Usedrange a registrului de lucru „Closed.xls” din registrul de lucru „Open.xls” și va extrage datele din registrul de lucru „Closed.xls”
  • Dacă celula de referință este goală, # N / A este pus în loc. Folosind metoda specialcells, puteți șterge toate erorile # N / A și puteți schimba formula în valori

Pentru a începe cu acesta, vom salva două fișiere Excel 1) Open.xls 2) Closed.xls în calea „D: \ Test Folder”

Urmează instantaneul registrului de lucru „Closed.xls”:

Pentru a salva automat datele din fișierul „Closed.xls” în fișierul „Open.xls”, trebuie să urmăm pașii de mai jos pentru a lansa editorul VB

  • Faceți clic pe fila Dezvoltator
  • Din grupul de coduri, selectați Visual Basic

  • Copiați codul de mai jos în ThisWorkbook (Closed.xls)
 Private Sub Workbook_BeforeSave (ByVal SaveAsUI As Boolean, _ Cancel As Boolean) „Introduceți adresa UsedRange a Sheet1 Closed.xls (acest registru de lucru)” --- Foaie de comentarii2.Cells (1, 1) = Sheet1.UsedRange.Address End Sub 

  • Pentru a extrage datele din „Open.xls”, copiați următorul cod în modulul standard
 Sub Importdata () Dim AreaAddress As String Sheet1.UsedRange.Clear Sheet1.Cells (1, 1) = "= 'D: \ Test Folder \" & "[Closed.xls] Sheet2'! RC" AreaAddress = Sheet1.Cells ( 1, 1) Cu Sheet1.Range (AreaAddress) .FormulaR1C1 = "= IF ('D: \ Test Folder \" & "[Closed.xls] Sheet1'! RC =" "" ", NA (), 'D: \ Test Folder \ "& _" [Closed.xls] Sheet1 '! RC) "On Error Resume Next .SpecialCells (xlCellTypeFormulas, xlErrors) .Clear On Error GoTo 0 .Value = .Value End With End Sub 

  • Copiați următorul cod în ThisWorkbook (Open.xls)
 Private Sub Workbook_Open () Rulați "Importdata" End Sub 

Acum, codurile VBA sunt toate setate; tot ce trebuie să facem este să deschidem numele fișierului „Open.xls”. Urmează instantaneul fișierului „Open.xls”:

Codul nu este limitat la copierea celulei din A1.usedrange; codul va alege intervalul de pornire și va funcționa perfect. Fișierele sunt disponibile pentru descărcare și vă recomandăm să faceți o încercare.

Concluzie: Cu codul VBA, putem automatiza sarcina de extragere a datelor fără a deschide registrul de lucru de destinație și ne scutim de a face copierea și lipirea manuală.

Dacă ți-au plăcut blogurile noastre, împărtășește-le prietenilor tăi de pe Facebook. Și, de asemenea, ne puteți urmări pe Twitter și Facebook.

Ne-ar plăcea să aflăm de la dvs., să ne anunțați cum putem îmbunătăți, completa sau inova munca noastră și să o îmbunătățim. Scrieți-ne pe site-ul de e-mail