Excel VBA pentru a copia rândurile într-o altă foaie de lucru în funcție de criterii

  • Imparte Asta
Hugh West

Date de coping , pe baza unor criterii, de pe o foaie pe alta este una dintre sarcinile care se fac frecvent în Excel. Dacă aveți o mulțime de rânduri și doriți să le copiați pe o altă foaie pe baza unor criterii, poate fi destul de obositor și consumator de timp. Dar cu Microsoft Aplicație Visual Basic (VBA) puteți crea macro-uri cu ajutorul cărora puteți copia cu ușurință date de pe o foaie pe alta în funcție de diferite criterii. În acest articol, vă voi arăta cum puteți copia rânduri într-o altă foaie de lucru pe baza a 2 tipuri diferite de criterii, utilizând Excel VBA .

Să spunem că aveți următorul set de date într-o foaie de calcul numită " Date "Acum, doriți să copiați anumite rânduri pe baza unor criterii într-o altă foaie.

Descărcați caietul de practică

Copierea rândurilor într-o altă foaie de calcul pe baza criteriilor.xlsm

2 Modalități de copiere a rândurilor într-o altă foaie de lucru pe baza criteriilor prin Excel VBA

1. Copierea rândurilor într-o altă foaie de calcul pe baza unor criterii de text

În această demonstrație, vă voi arăta cum se copiază rândurile dintr-o foaie de calcul în alta pe baza unor criterii de text. Să presupunem că doriți să copiați datele vânzătorilor care vând în Virginia într-o foaie de lucru numită Vânzări zonale folosind Excel VBA . Pentru a face asta, mai întâi,

➤ Presa ALT+F11 pentru a deschide fereastra VBA fereastră.

În VBA fereastră,

➤ Faceți clic pe Introduceți și selectați Modul .

Se va deschide fereastra Modul(Cod) fereastră. Acum,

➤ Introduceți următorul cod în fișierul Modul(Cod) fereastră,

 Sub Copy_Criteria_Text() Application.ScreenUpdating = False With ActiveSheet .AutoFilterMode = False With Range("C1", Range("C" & Rows.Count).End(xlUp)) .AutoFilter 1, "Virginia" On Error Resume Next .Offset(1).EntireRow.Copy Sheet3.Range("A" & Rows.Count).End(xlUp).Offset(1).End With .AutoFilterMode = False End With Application.ScreenUpdating = TrueSheet3.Select End Sub 

Codul va crea un macro numit Copy_Criteria_Text care va căuta Virginia în coloana C din foaia de calcul curentă și returnează rândurile care conțin Virginia în foaia de calcul numită Vânzări zonale (Foaia3).

După aceea,

➤ Închideți sau minimalizați fereastra VBA fereastră.

➤ Presa ALT+F8

Se va deschide fereastra Macro fereastră.

➤ Selectați Copy_Criteria_Text în Numele macroului și faceți clic pe Rulați .

Ca rezultat, rândurile cu Virginia vor fi copiate în foaia de lucru numită Vânzări zonale

Citiți mai mult: Cum să copiați automat rândurile în Excel într-o altă foaie (4 metode)

2. Copierea rândurilor într-o altă foaie de lucru pe baza unor criterii de număr

Acum, vă voi arăta cum puteți copia rândurile dintr-o foaie de calcul într-o altă foaie de calcul pe baza unor criterii numerice. Să presupunem că doriți să copiați datele privind vânzările care sunt mai mari de $100000 într-o foaie de calcul numită Vânzări de top . Pentru a face asta, mai întâi,

➤ Presa ALT+F11 pentru a deschide fereastra VBA fereastră.

În VBA fereastră,

➤ Faceți clic pe Introduceți și selectați Modul .

Se va deschide fereastra Modul(Cod) fereastră. Acum,

➤ Introduceți următorul cod în fișierul Modul(Cod) fereastră,

 Sub Copy_Criteria_Number() Application.ScreenUpdating = False With ActiveSheet .AutoFilterMode = False With Range("D1", Range("D" & Rows.Count).End(xlUp)) .AutoFilter 1, ">100000" On Error Resume Next .Offset(1).EntireRow.Copy Sheet4.Range("A" & Rows.Count).End(xlUp).Offset(1).End With .AutoFilterMode = False End With Application.ScreenUpdating =Adevărat Sheet4.Select End Sub 

Codul va crea un macro numit Copy_Criteria_Number care va căuta valori mai mari de 100000 în coloana D din foaia de lucru numită Date și returnează rândurile care conțin valori ale vânzărilor mai mari de 100 000 USD în foaia de calcul numită Vânzări de top (Foaia4).

După aceea,

➤ Închideți sau minimalizați fereastra VBA fereastră.

➤ Presa ALT+F8

Se va deschide fereastra Macro fereastră.

➤ Selectați Copy_Criteria_Number în Numele macroului și faceți clic pe Rulați .

Ca urmare, rândurile care conțin valori ale vânzărilor mai mari de 100 000 de dolari vor fi copiate în Vânzări de top fișă de lucru.

Citiți mai mult: Cum să copiați mai multe rânduri în Excel folosind macro (4 exemple)

Concluzie

Cu cele două metode din acest articol, veți putea copia rânduri dintr-o foaie de lucru în altă foaie de lucru pe baza unor criterii diferite folosind Excel VBA. Puteți folosi prima metodă pentru criterii de text și a doua metodă pentru criterii numerice. Dacă aveți orice fel de confuzie cu privire la oricare dintre metode, nu ezitați să lăsați un comentariu.

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.