Excel - lahtri A1 võrdlemine kogu A-veerguga lehel 2

Probleem

Olen püüdnud võrrelda leht A2 A2 lehele A2 A2 kuni A500 ja kui see eksisteerib kusagil lehel2, siis kopeerige see kogu rida uuele lehele.

Olen eksperimenteerinud paljude makro-koodidega teistelt, kuid seni pole tõelist edu saavutatud.

Mõtle, kuidas öelda, et koodis on mulle natuke raske. Ma püüan selle üles riputada.

võrdlema ()

Dim LastRow_1 kui terviklik

Dim LastCol_1 kui terviklik

Dim Data_1 vahemikus

Dim LastRow_2 kui terviklik

Dim LastCol_2 kui terviklik

Dim Data_2 as vahemik

Dim Sh_1 töölehena

Dim Sh_2 töölehena

Dim X nii kaua

Dim Y nii kaua

Dim C_1 as vahemik

Dim C_2 as vahemik

Määra Sh_1 = ActiveWorkbook.Sheets ("Master")

Määra Sh_2 = ActiveWorkbook.Sheets ("Inventory")

LastRow_1 = Sh_1.range ("A5000"). Lõpp (xlUp)

LastCol_1 = Sh_1.range ("A5000"). Lõpp (xlToLeft).

Määrake Data_1 = Sh_1.range ("A2"). Suuruse muutmine (LastRow_1, LastCol_1)

LastRow_2 = Sh_2.range ("A5000"). Lõpp (xlUp)

LastCol_2 = Sh_2.range ("A5000"). Lõpp (xlToLeft).

Määrake Data_2 = Sh_2.range ("A2"). Suuruse muutmine (LastRow_2, LastCol_2)

Iga C_1 andmete puhul_1

Iga C_2 kohta Data_2

Kui C_2 = C_1

'leidis lehel2 lahtri, mis sobis lahtrisse 1

nüüd tehke seda, mida sa pead tegema

Data_2.EntireRow.Copy Destination: = töölehed ("New_Master") vahemik ("A5000"). Lõpp (xlUp) .Offset (1, 0)

Lõpeta kui

Järgmine C_2

Järgmine C_1

lõpu alam

Selle käivitamisel kopeerib see kõik lihtsalt lehele, mida nimetatakse New_Master, sealhulgas mitte-vasted.

Mida ma olen kadunud? See peab olema ilmne, see on tavaliselt nii.

Lahendus

Peate lihtsalt kirjutama:

 Data_2.EntireRow.Copy 

Te kopeerite kogu vahemiku "Data_2", mis vastab lehe "Inventory" veerule A

Kui soovid kopeerida ainult Data_2-s ridu, mis vastavad Data_1-le, kirjutage

 C_2.EntireRow.Copy 

See on nii!

Märge

Tänud Ivan-hoe eest selle foorumi vihje eest.

Eelmine Artikkel Järgmine Artikkel

Top Näpunäited