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.