Excel - Compararea celulei A1 cu întreaga coloană A din foaia 2
Problema
Am incercat sa compare foaia1 A2 la foaia2 A2 pana la A500 si daca exista undeva in foaia2 e un col apoi copiati intregul rand intr-o foaie noua.
Am experimentat multe fragmente de macrocomandă de la alții, dar până acum nici un succes real.
Stabilind cum să spun că în cod este un pic dificil pentru mine. Mă străduiesc să înțeleg asta.
sub compar ()
Dim LastRow_1 ca Integer
Dim LastCol_1 ca Integer
Dim Data_1 Ca domeniu
Dim LastRow_2 ca intreg
Dim LastCol_2 ca Integer
Dim Date_2 Ca domeniu
Dim Sh_1 Ca foaie de lucru
Dim Sh_2 Ca foaie de lucru
Dim X la fel de lung
Se diminuează atât de mult
Dim C_1 Ca domeniu
Dim C_2 Ca interval
Setați Sh_1 = ActiveWorkbook.Sheets ("Master")
Setați Sh_2 = ActiveWorkbook.Sheets ("Inventar")
LastRow_1 = Sh_1.range ("A5000"). Sfârșit (xlUp)
LastCol_1 = Sh_1.range ("A5000"). Sfârșit (xlToLeft). Coloană
Setați Data_1 = Sh_1.range ("A2"). Redimensionați (LastRow_1, LastCol_1)
LastRow_2 = Sh_2.range ("A5000"). Sfârșit (xlUp)
LastCol_2 = Sh_2.range ("A5000"). Sfârșit (xlToLeft). Coloană
Setați Date_2 = Sh_2.range ("A2"). Redimensionați (LastRow_2, LastCol_2)
Pentru fiecare C_1 din Data_1
Pentru fiecare C_2 în Data_2
Dacă C_2 = C_1 Apoi
"a găsit o celulă pe foaia2 care corespunde celulei din foaia1
"faceți acum ceea ce trebuie să faceți
Data_2.EntireRow.Copy Destinație: = Foaie de lucru ("New_Master"), interval ("A5000") End (xlUp) .Offset (1, 0)
Terminați Dacă
Următorul C_2
Următorul C_1
end sub
Când rulez acest lucru, doar copiază totul în foaia numită New_Master, inclusiv în non-matches.
Ce am lipsit? Trebuie să fie evident, de obicei este cazul.
Soluţie
Trebuie doar să scrieți:
Data_2.EntireRow.Copy
Copiați întregul interval "Data_2", care corespunde coloanei A din fișa "Inventar"
Dacă doriți să copiați numai rândurile din Data_2 care se potrivesc cu Data_1, scrieți
C_2.EntireRow.Copy
Asta e!
Notă
Mulțumită lui Ivan-hoe pentru acest sfat pe forum.