Cum se transferă date specifice dintr-o foaie în alta prin VBA în Microsoft Excel

Anonim

În acest articol, vom folosi evenimentul de schimbare a foii de lucru pentru a transfera date o foaie în alta, în funcție de o anumită condiție.

Datele brute constau în detalii despre clienți, care includ numele, adresa, orașul, regiunea, țara și numărul de telefon.

În acest articol, dorim să transferăm datele acelor clienți care nu sunt eligibili pentru o anumită ofertă. Ultima coloană conține „Nu” ca valoare, dacă un client nu este eligibil pentru o anumită ofertă. Dorim să copiem acei clienți „neeligibili” în foaia „NotEligibleData”.

Explicarea codului

Dacă Target.Column = 7 Atunci

Codul de mai sus este utilizat pentru a restricționa evenimentul de modificare a foii de lucru pentru a se executa numai atunci când valoarea în 7a coloana este modificată.

Foi de calcul („NotEligibleData”). Interval („A2: I600”). ClearContents

Codul de mai sus este utilizat pentru a șterge valoarea din intervalul A2: I600

Foi de calcul („Principal”). Celule (i, „G”). EntireRow.Copy Destination: = Foi de calcul („NotEligibleData”). Range („A” & Rows.Count) .End (xlUp) .Offset (1)

Codul de mai sus este utilizat pentru a copia clienții neeligibili în foaia „NotEligibleData”.

Vă rugăm să urmați codul de mai jos

 Private Sub Worksheet_Change (ByVal Target As Range) 'Declararea variabilelor Dim i, Lastrow As Long' Executați codul dacă valoarea din a șaptea coloană este modificată Dacă Target.Column = 7 Apoi 'Obținerea numărului rândului ultimei celule Lastrow = Foi ("Principal") ) .Range („A” & Rows.Count) .End (xlUp) .Row 'Ștergerea oricăror date anterioare din foile de foi „NotEligibleData” („NotEligibleData”). Gama („A2: I600”). ClearContents' Looping de la zecea rândul până la ultimul rând Pentru i = 10 Pentru Lastrow 'Dacă valoarea din coloana G a rândului este „Nu”, copiați rândul în foaia de destinație Dacă foi („Principal”). Celule (i, „G”). Valoare = " Nu „Then Sheets („ Main ”). Celule (i,„ G ”). EntireRow.Copy Destination: = Sheets („ NotEligibleData ”). Range („ A ”& Rows.Count) .End (xlUp) .Offset ( 1) End If Next i End If Range ("A1"). Selectați End Sub 

Dacă ți-a plăcut acest blog, distribuie-l prietenilor tăi de pe Facebook. 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 munca noastră și o putem îmbunătăți. Scrieți-ne pe site-ul de e-mail