Excel - Porovnajte dva zoznamy a zmeňte farbu riadku
Problém
Mám dva rôzne pracovné zošity; povedzme zošit 1 a pracovný zošit2. V oboch zošitoch mám stĺpec s čiarovými kódmi.
Potrebujem VBA na kontrolu dvoch stĺpcov čiarového kódu v zošitoch a ak nájde zhody na vytvorenie nového zošita a skopíruje celý riadok zošita 1 a použije rovnakú farbu čiarového kódu bunky v zošite 2.
Riešenie
Predpokladám, že stĺpce čiarového kódu ako list 1, tak list 2 sú rovnaké
potom skúste tento kód
na začiatku pri spustení kódu sa kód opýta na zadanie stĺpca písmena čiarového kódu. môžete napísať písmeno stĺpca napr. G a kliknúť ok (vpravo hore):
Makro je
Sub test () Dim col As String, r Ako rozsah, c As Range, cfind As Range Dim x, y Ako Integer col = InputBox ("zadajte stĺpec LETTER, v ktorom je čiarový kód označený napr. G") On Error Resume Next S pracovnými hárkami ("sheet2") Nastavte r = rozsah (.Cells (2, col), .Cells (2, col) .End (xlDown)) Pre každý cv rx = c.Value s hárkami ("sheet1"). Stĺpce (col & ":" & col) Nastaviť cfind = .Cells.Find (čo: = x, lookat: = xlWhole) Ak je cfind nič, potom GoTo nnext y = cfind.Interior.ColorIndex cfind.EntireRow.Copy Pomocou pracovných hárkov ( "sheet3" .Cells (Rows.Count, "A"). Koniec (xlUp) .Offset (1, 0) .PasteSpecial .Cells (Rows.Count, col) .End (xlUp) .Interior.ColorIndex = y Koniec S End With nnext: Ďalej c Koniec S End Sub
Poznámka
Vďaka venkat1926 za tento tip na fóre.