Удалить строки без совпадения серийных номеров

Список из 82 серийных номеров в листе 1 столбец. «С». Хотите проверить его по серийным номерам 229 на листе 2 столбца. «Э».

Хотите выделить красным цветом на Листе 2 все строки без соответствующего серийного номера из Листа 1.

Простой способ сделать это?

Стараюсь избегать ручного ввода.

Попробуйте использовать Application.Match и IsError, может быть? «Хочу выделить красным» — это легко сделать с помощью условного форматирования, не требуя VBA.

BigBen 13.08.2024 17:43
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
1
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

С помощью условного форматирования вы можете добиться этого:

Формула в Format values where this formula is true: (с учетом ваших таблиц)

=ISERROR(VLOOKUP($E1,Sheet1!$C:$C,1,FALSE)) *

Применяется к: =$1:$229

* Мод основан на комментарии BigBen.

Да, это верно. Он остается в таком виде, потому что ранее я пробовал другие проверки.

Black cat 13.08.2024 20:08

Пожалуйста, попробуйте следующий код VBA. Он использует Vlookup между диапазонами сразу, возвращая массив, который будет выделен столбцу F: F на листе Sheet2 и обработан для получения диапазона, который нужно выделить:

Sub MatchSNVlookup()
 Dim ws1 As Worksheet, lastR1 As Long, rng1 As Range, ws2 As Worksheet, lastR2 As Long, rng2 As Range
 
 Set ws1 = Worksheets("Sheet1")
 lastR1 = ws1.Range("C" & ws1.rows.count).End(xlUp).row 'last cell in C:C
                                                        'if other cells below, place here 82, instead
 
 Set ws2 = Worksheets("Sheet2")
 lastR2 = ws2.Range("E" & ws2.rows.count).End(xlUp).row
 
 Set rng1 = ws1.Range("C2:C" & lastR1)
 Set rng2 = ws2.Range("E2:E" & lastR2)
 
 With rng2.Offset(, 1)
    .Value = Application.VLookup(rng2.Value, rng1.Value, 1, False)         'it works on a rrays, too!
    .Replace "#N/A", ""  'it returns the string "#N/A" for not match, whidh will be replaced with the null string!
    .SpecialCells(xlCellTypeBlanks).Offset(, -1).Interior.Color = vbYellow 'the empty cells range, Offset(,-1) = a column before is highlighted
    .Clear               'the helper range id cleared!
 End With
End Sub

Другие вопросы по теме