În Microsoft Excel, putem copia celule din rândul activecell pe o anumită foaie. În acest articol vom folosi codul VBA pentru a transfera date din fiecare foaie și pentru a îmbina datele într-o singură foaie de lucru. Vom adăuga o foaie principală în registrul de lucru și vom salva datele dintr-un interval specificat într-o singură foaie.
Exemplele de coduri se vor copia într-o foaie de bază de date cu numele Sheet2. De fiecare dată când rulăm macro celulele vor fi plasate sub ultimul rând cu date după ultima coloană din foaia2. Această macrocomandă va copia celulele din coloana A, D din ActiveCell.
Următoarea este imaginea eșantionului de date:
Pentru a copia celule din rândul activecell în Sheet2; 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
- Faceți clic pe Insert apoi Module
- Aceasta va crea un nou modul
- Introduceți următorul cod în modulul standard
Sub CopyCells () Dim sourceRange As Range Dim distrange As Range Dim Lr As Long Lr = LastRow (Sheets ("Sheet2")) + 1 Set sourceRange = Sheets ("Sheet1"). Cells (_ ActiveCell.Row, 1) .Range ("A1: D1") Set destrange = Sheets ("Sheet2"). Range ("A" & Lr) sourceRange.Copy destrange End Sub
Sub CopyCellsValues () Dim sourceRange As Range Dim distrange As Range Dim Lr As Long Lr = LastRow (Sheets ("Sheet2")) + 1 Set sourceRange = Sheets ("Sheet1"). Cells (_ ActiveCell.Row, 1) .Range ("A1: D1") Cu sourceRange Set destrange = Sheets ("Sheet2"). Range ("A" _ & Lr) .Resize (.Rows.Count, .Columns.Count) End With destrange.Value = sourceRange.Value Sfârșitul Sub
Funcția LastRow (sh Ca foaie de lucru) La eroare Reîncepe Următorul LastRow = sh.Cells.Find (Ce: = "*", _ După: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas , _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row On Error GoTo 0 End Function
Funcția Lastcol (sh Ca foaie de lucru) La eroare Reîncepeți Următorul Lastcol = sh.Cells.Find (What: = "*", _ After: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas , _ SearchOrder: = xlByColumns, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Column On Error GoTo 0 End Function
- Pentru a verifica codul VBA de mai sus; adăugați date în intervalul „A1: D1” și apoi rulați macro-ul apăsând tasta de comandă rapidă F5
- Datele stocate în intervalul specificat vor fi copiate în „Sheet2” începând de la A1
- Dacă rulăm din nou această macro; datele vor fi salvate în rândul următor; consultați imaginea de mai jos:
- Putem schimba intervalul din macro-ul de mai sus care se potrivește cerințelor noastre
Concluzie: Cu macro-ul de mai sus putem copia celulele din rândul activecell într-o foaie nouă folosind codul VBA.
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