Excel - Porovnanie bunky A1 s celým stĺpcom A v liste 2
Problém
Snažil som sa porovnať list1 A2 s listom A2 až A500 a ak existuje niekde v hárku2, potom sa celý riadok skopíruje do nového hárku.
Experimentoval som s mnohými kúskami makro kódu od iných, ale zatiaľ nie je skutočný úspech.
Zistiť, ako povedať, že v kóde je pre mňa trochu ťažké. Snažím sa, aby som sa na to dostal.
sub porovnať ()
Dim LastRow_1 Ako celé číslo
Dim LastCol_1 Ako celé číslo
Dim Data_1 Ako rozsah
Dim LastRow_2 Ako celé číslo
Dim LastCol_2 Ako celé číslo
Dim Data_2 Ako rozsah
Dim Sh_1 ako pracovný hárok
Dim Sh_2 ako pracovný hárok
Dim X As Long
Dim Y As Long
Dim C_1 Ako rozsah
Dim C_2 Ako rozsah
Nastaviť Sh_1 = ActiveWorkbook.Sheets ("Master")
Nastaviť Sh_2 = ActiveWorkbook.Sheets ("Inventory")
LastRow_1 = Sh_1.range ("A5000") Koniec (xlUp) .Row
LastCol_1 = Sh_1.range ("A5000") Koniec (xlToLeft).
Set Data_1 = Sh_1.range ("A2") Zmena veľkosti (LastRow_1, LastCol_1)
LastRow_2 = Sh_2.range ("A5000") Koniec (xlUp) .Row
LastCol_2 = Sh_2.range ("A5000") Koniec (xlToLeft).
Set Data_2 = Sh_2.range ("A2") Zmena veľkosti (LastRow_2, LastCol_2)
Pre každý C_1 v Data_1
Pre každý C_2 v Data_2
Ak C_2 = C_1 Potom
'našiel bunku na hárku2, ktorá zodpovedala bunke v hárku1
teraz urobte, čo musíte urobiť
Data_2.EntireRow.Copy Cieľ: = Pracovné listy ("New_Master") Rozsah ("A5000") Koniec (xlUp) .Offset (1, 0)
Koniec Ak
Ďalej C_2
Nasledujúci C_1
koncová sub
Keď to spustím, len skopíruje všetko do hárku s názvom New_Master, vrátane nezodpovedajúcich.
Čo mi chýba? Musí to byť zrejmé, to je zvyčajne prípad.
Riešenie
Stačí napísať:
Data_2.EntireRow.Copy
Skopírujete celý rozsah "Data_2", ktorý zodpovedá stĺpcu A listu "Inventár"
Ak chcete kopírovať iba riadky v Data_2, ktoré sa zhodujú s Data_1, zapíšte
C_2.EntireRow.Copy
To je všetko!
Poznámka
Ďakujem Ivanovi-motyka za tento tip na fóre.