Во-первых, Visual Basic заботится о чувствительности к регистру, поэтому при сравнении двух листов вам нужно будет преобразовать все в верхний регистр, используя VBA.UCase. Я также включил функцию обрезки, так как вокруг самого слова могут быть пробелы. Любые дальнейшие манипуляции с текстом, необходимые для создания двух сопоставимых строк, должны быть исследованы. Я бы рекомендовал это экспертное руководство по работе с текстовыми строками с помощью макросов Excel
Итак ... при условии, что оба листа находятся в одной и той же книге, наилучшей отправной точкой будет получение кодовых имен двух листов из редактора Visual Basic (по умолчанию Sheet1 / Sheet2 и т. Д.). Ниже я предположил, что Sheet1 - это выходной лист, а Sheet2 - данные, которые вы ищете. Если вы не можете уточнить кодовые имена, вы можете заменить Sheets ("SheetName1") и Sheets ("SheetName2") в следующем коде:
Dim SourceRow as Long
Dim DestRow as Long
For DestRow = 1 to 10
For SourceRow = 1 to 10
If VBA.Trim(VBA.UCase(Sheet1.Cells(DestRow,"DestCol"))) = VBA.Trim(VBA.UCase(Sheet2.Cells(SourceRow,"SourceCol"))) then
Sheet1.Cells(DestRow,"OutputCol") = "Yes"
Goto NextDestRow
End If
Next SourceRow
Sheet1.Cells(DestRow,"OutputCol") = "No"
NextDestRow:
Next DestRow
Код предполагает, что вы ищете данные в одном столбце на каждом листе, и там, где я написал «DestCol» и «SourceCol», вы должны просто вставить числовое значение этого столбца (где A = 1, B = 2 и т. Д.). «OutputCol» - это столбец, в который вы хотите поместить выходные данные на листе назначения.
Цикл предполагает, что вас интересуют строки с 1 по 10 на каждом листе; при необходимости отрегулируйте