Excel - Sammenligning af celle A1 til hele En kolonne i ark 2

Problem

Jeg har forsøgt at sammenligne ark1 A2 med ark2 A2 til A500, og hvis den findes et eller andet sted i ark2 er en kol, så kopier hele rækken til et nyt ark.

Jeg har eksperimenteret med mange bits makrokode fra andre, men hidtil ingen reel succes.

At finde ud af, hvordan man siger det i kode er lidt svært for mig. Jeg kæmper for at få fat i dette.

sub sammenligne ()

Dim LastRow_1 som helhed

Dim LastCol_1 som helhed

Dim Data_1 Som rækkevidde

Dim LastRow_2 som helhed

Dim LastCol_2 som helhed

Dim Data_2 Som rækkevidde

Dim Sh_1 som regneark

Dim Sh_2 som regneark

Dim X så lang

Dim Y så lang

Dim C_1 Som rækkevidde

Dim C_2 Som rækkevidde

Indstil Sh_1 = ActiveWorkbookSheets ("Master")

Indstil Sh_2 = ActiveWorkbook.Sheets ("Inventory")

LastRow_1 = Sh_1.range ("A5000"). Slut (xlUp) .Row

LastCol_1 = Sh_1.range ("A5000"). Slut (xlToLeft) .Søjle

Indstil Data_1 = Sh_1.Range ("A2"). Ændre størrelse (LastRow_1, LastCol_1)

LastRow_2 = Sh_2.range ("A5000"). Slut (xlUp) .Row

LastCol_2 = Sh_2.range ("A5000"). Slut (xlToLeft) .Søjle

Indstil Data_2 = Sh_2.Range ("A2"). Ændre størrelse (LastRow_2, LastCol_2)

For hver C_1 i Data_1

For hver C_2 i Data_2

Hvis C_2 = C_1 Så

'fundet en celle på ark2, der matchede cellen i ark1

»gør nu hvad du skal gøre

Data_2.EntireRow.Copy Destination: = Regneark ("New_Master") .område ("A5000"). Slut (xlUp) .Offset (1, 0)

Afslut Hvis

Næste C_2

Næste C_1

ende sub

Når jeg kører dette kopierer det bare alt til arket kaldet New_Master, herunder de ikke-kampe.

Hvad mangler jeg? Det skal være indlysende, det er normalt tilfældet.

Opløsning

Du skal bare skrive:

 Data_2.EntireRow.Copy 

Du kopierer hele sortimentet "Data_2", hvilket svarer til kolonnen A i arket "Inventory"

Hvis du kun vil kopiere rækkerne i Data_2, der matcher Data_1, skal du skrive

 C_2.EntireRow.Copy 

Det er det!

Bemærk

Takket være Ivan-hoe til dette tip på forummet.

Forrige Artikel Næste Artikel

Top Tips