Ваш пост помечен VBa, и этот макрос сделает это. Но я не использовал совпадение или не нашел, как вы упомянули, я не уверен, что вам пришлось использовать их или нет, я предположил, что нет, и вы просто показываете, что вы пытались.
Как всегда с макросами, сначала сохраните свою работу, создайте копию файла, а затем примените ее (на случай, если она не выполнит то, что вы хотели, значит, у вас есть резервная копия)
Sub RemoveEmails()
Dim row As Integer
row = 1
Dim sheet_A_Column As String
sheet_A_Column = "D" ' UPDATE ME IF NEEDED. I am the column of emails in the main table. You will be deleting emails from this list
Dim sheet_B_Column As String
sheet_B_Column = "A" ' UPDATE ME IF NEEDED. I am the list of emails which need to be matched for deletion.
Do While (True) ' don't ever stop me! I loop forever...
Dim theValue As String
theValue = Worksheets("Sheet2").Range(sheet_B_Column & row).Value ' the value on Sheet2 (the delete list)
If theValue = "" Then
Exit Do ' unless I run out of things to loop through, at which point, exit
End If
'Now to loop through all the cells on Sheet1 to see which value(s) need clearing or not
For Each c In Worksheets("Sheet1").Range(sheet_A_Column & ":" & sheet_A_Column).Cells
If c.Value = theValue Then
c.Value = ""
End If
Next
row = row + 1
Loop
End Sub
Итак, несколько снимков экрана, чтобы помочь объяснить.
Список электронных писем на Sheet2, которые мы хотим удалить из sheet1
Теперь, Sheet1, фактический список, где мы хотим удалить некоторые из них.
И конечный результат после запуска макроса
Я должен признать, что код, который я дал, не самый эффективный, но, основываясь на вашем вопросе, он делает то, что ему нужно!