Excel - макрос за подчертаване на дублирани стойности

Microsoft Excel се използва широко по целия свят за създаване, обработка, манипулиране или сравняване на множество източници на данни. Excel, заедно с VBA, може да се използва за много интересни задачи, като например сравняване на една и съща стойност в една колона с друга. Човек може да създаде потребителски код на VBA, който ще търси стойностите в даден диапазон и ще маркира клетки, където стойността от една колона съвпада с другата. За да добавите към гъвкавостта, потребителят може също така да определи цветово кодиране, където искат да бъдат подчертани съвпадащите клетки.

Проблем

Имам номера на заетото помещение в колона Б в лист, наречен Списък на стаите. Също така имам общи номера на стаи в колона D в същия лист. Искам да подчертая всички номера на колона Б в колона Г.

Например, имам числа: 2 в клетка В2, 8 в клетка В3 и 6 в клетка В4 в колона В и числа 1 в клетка D2, 2 в клетка D3, 3 в клетка D4, 4 в клетка D5, 5 в клетка D6, 6 в клетка D7, 7 в клетка D8, 8 в клетка D9, 9 в клетка D10 в колона D на същия лист, наречен Списък на стаите. Искам да маркирам по цвят клетките в колона D, съдържащи същите числа като колона В. Тук искам да маркирам клетка D3 (Тъй като съдържа номер 2, който също е в клетка B2), клетка D9 (Тъй като съдържа същия номер) като клетка B3), клетка D7 (Тъй като съдържа същия номер като клетка B4).

Така че просто искам да променя цвета на клетки D3, D9 и D7 на колона D.

Накратко, искам да открия същите цифри, написани в колона Б от колона Г и да маркирам тези клетки в колона Г по цвят.

В колона D числата трябва да са само в първоначалното си място, но клетките трябва да бъдат подчертани с различни цветове.

Решение

Стартирайте този макрос

Потвърдете дали получавате това, което искате

 Под-тест () Dim rng As Range, c As Range, cfind As Range, rng1 As Range Worksheets ("списък на стаите"). xlDown)) Задайте rng1 = Обхват (Обхват ("B2"), Обхват ("B2"). Край (xlDown)) За всеки c Поставете cfind = rng1.Cells.Find (какво: = c.Value, lookat: = xlWhole) Ако не е нищо, то c.Interior.ColorIndex = 3 

Решение

Благодарение на [venkat1926 за този съвет на форума.

Предишна Статия Следваща Статия

Топ Съвети