Excel - Porovnání buňky A1 s celým sloupcem A v listu 2
Problém

Snažil jsem se porovnat list1 A2 s listem A2 až A500 a pokud existuje někde v listu2, pak se celý řádek zkopíruje do nového listu.
Experimentoval jsem s mnoha kousky makra od ostatních, ale zatím žádný skutečný úspěch.
Zjistit, jak říci, že v kódu je pro mě trochu obtížné. Snažím se, abych to zvládl.
dílčí porovnání ()
Dim LastRow_1 Jako celé číslo
Dim LastCol_1 jako celé číslo
Dim Data_1 Jako rozsah
Dim LastRow_2 jako celé číslo
Dim LastCol_2 jako celé číslo
Dim Data_2 Jako rozsah
Dim Sh_1 jako sešit
Dim Sh_2 jako pracovní list
Dim X As Long
Dim Y As Long
Dim C_1 Jako rozsah
Dim C_2 Jako rozsah
Nastavit Sh_1 = ActiveWorkbook.Sheets ("Master")
Nastavit Sh_2 = ActiveWorkbook.Sheets ("Inventory")
LastRow_1 = Sh_1.range ("A5000") Konec (xlUp) .Row
LastCol_1 = Sh_1.range ("A5000"). Konec (xlToLeft).
Nastavit Data_1 = Sh_1.range ("A2") Změna velikosti (LastRow_1, LastCol_1)
LastRow_2 = Sh_2.range ("A5000") Konec (xlUp) .Row
LastCol_2 = Sh_2.range ("A5000") Konec (xlToLeft).
Nastavit Data_2 = Sh_2.range ("A2") Změna velikosti (LastRow_2, LastCol_2)
Pro každý C_1 v Data_1
Pro každý C_2 v Data_2
Pokud C_2 = C_1 Pak
'nalezl buňku na listu2, která odpovídala buňce v listu1
„teď udělej, co musíš udělat
Data_2.EntireRow.Copy Cíl: = Pracovní listy ("New_Master") Rozsah ("A5000") Konec (xlUp) .Offset (1, 0)
Konec Pokud
Další C_2
Další C_1
koncová sub
Když to spustím, stačí zkopírovat vše na list nazvaný New_Master, včetně neshod.
Co mi chybí? To musí být zřejmé, to je obvykle případ.
Řešení
Stačí napsat:
Data_2.EntireRow.Copy
Zkopírujete celý rozsah "Data_2", který odpovídá sloupci A listu "Inventář"
Pokud chcete kopírovat pouze řádky v Data_2, které odpovídají Data_1, zapište
C_2.EntireRow.Copy
A je to!
Poznámka
Děkuji Ivanovi-motyku za tento tip na fóru.