Ja vēlaties uzzināt rindas dublikātu, kurā vienai personai ir vairāki ieraksti, un vēlaties uzzināt ierakstu dublikātus, tad nepalaidiet garām šo rakstu. Mēs nodrošināsim makro kodu, lai palīdzētu jums identificēt rindu dublikātus. Šajā rakstā mēs uzzināsim, kā atrast dublētas rindas, pamatojoties uz konkrētu kolonnu.
Jautājums: Man ir izklājlapa ar vairākiem laika zīmogu ierakstiem cilvēkiem. Šie cilvēki var pulksteņot vai izkļūt vairākās vietās vienlaikus. Mēģinot uzrakstīt formulu vai makro (neesat pārliecināts, kurš šajā gadījumā vislabāk sasniedz mērķi), kas meklēs datus un iezīmēs ar sarkanām līnijām ar laiku, kas konkrētai personai pārklājas. Vai tas ir iespējams un vai kāds varētu palīdzēt, lūdzu? Liels paldies.
Oriģinālo jautājumu var atrast šeit
Tālāk ir redzams pirms lapas momentuzņēmums:
Tālāk sniegts momentuzņēmums pēc lapas:
Lai iegūtu kodu; mums ir jāveic šādas darbības, lai palaistu Visual Basic redaktora ekrānu
- Noklikšķiniet uz cilnes Izstrādātājs
- Kodu grupā atlasiet Visual Basic
- Nokopējiet zemāk esošo kodu standarta modulī
Sub FindOverlapTime () Dim rng As Range, cell As Range, trng As Range, tcell As Range Dim lr As Long lr = Cells (Rows.Count, "A"). End (xlUp) .Row Range ("A2: H" & lr) .Interior.ColorIndex = xlNone Iestatīt rng = Diapazons ("C2: C" & lr) Katrai šūnai rng If Application.CountIf (Diapazons ("C2", šūna), šūna.Vērte)> 1 Pēc tam iestatiet trng = Diapazons ("F2: F" & šūna. Rinda - 1) Katrai tcell In trng Ja tcell.Pārvietojums (0, -3) = šūna Tad If (šūna.Pārvietojums (0, 3)> = tcell Un cell.Oset (0, 3) = tcell And cell.Pārvietojums (0, 4) <= tcell.Pārvietojums (0, 1)) Tad diapazons ("A" & šūna.Rinda & ": H" & šūna.Rinda) .Interior. ColorIndex = 3 Beigt, ja beigas, ja nākamā t šūna Beigt, ja nākamā šūna Beigas apakš
- Palaižot makro, mēs iegūsim rezultātu; skatiet zemāk momentuzņēmumu:
Koda skaidrojums:
- Rng, cell, trng, tcell deklarējiet kā diapazonu
- Lr tik ilgi
- lr = Šūnas (Rows.Count, "A"). Beigas (xlUp). Rinda pārbaudīs pašreizējās lapas pēdējo rindu.
- Diapazons ("A2: H" & lr) .Interior.ColorIndex = xlNone; tas atlasīs diapazonu, sākot no šūnas A2 līdz H kolonnai līdz pēdējai rindai (mūsu piemērā tiks atlasīta A2: H5), un tiks nodrošināta, ka krāsa netiks aizpildīta.
- Iestatīt rng = Diapazons ("C2: C" & lr); kolonna C (profilu ID) tiks saglabāta rng
- Par katru šūnu In rng; tagad mēs darbināsimies katrai cilpai rng, ti, kolonnā C
- Ja Application.CountIf (Diapazons ("C2", šūna), cell.Value)> 1 Tad; tas pārbaudīs, cik reizes šūnas vērtība ir lielāka par 1; ja tas ir lielāks par 1, tad
- Iestatīt trng = Diapazons ("F2: F" & šūna. Rinda - 1); tagad mēs iestatīsim kolonnu F, ti, IN laikā trng
- Nākamais mēs veiksim katrai cilpai trng un pārbaudīsim, vai ir kāda dublikāta rinda, un iezīmējiet to ar sarkanu krāsu, ja tā ir atrasta.
Secinājums: Tādā veidā mēs varam atrast dublikātus, izmantojot makro kodu, un vēlāk tos noņemt.
Ja jums patika mūsu emuāri, kopīgojiet to ar saviem draugiem Facebook. Un arī jūs varat sekot mums Twitter un Facebook.
Mēs labprāt uzklausītu jūsu viedokli, dariet mums zināmu, kā mēs varam uzlabot, papildināt vai ieviest jauninājumus mūsu darbā un uzlabot to jūsu labā. Rakstiet mums e -pasta vietnē