Limpar conteúdo da coluna de dados correspondente em outra planilha

1

Eu tenho uma coluna de endereços de e-mail na planilha 2 col A (mas eu poderia colocá-los na planilha 1 se isso facilitar ou acelerar) que eu quero remover da planilha 1 col D se correspondida (pode haver 2 ou mais ocorrências do mesmo email a ser removido / limpo e 1000s de linhas em cada folha).

Depois de todos os fóruns de busca do dia eu estou ficando mais confuso & Não consigo encontrar o que estou procurando. Não tenho certeza se deseja usar .match ou .find & .ClearContents & a sintaxe para percorrer.

    
por Peta 07.06.2014 / 10:59

2 respostas

0

Sua postagem está marcada com o VBa e, como tal, essa macro fará isso. Mas, eu não usei o fósforo ou encontrei como você mencionou, eu não tenho certeza se você teve que usá-los ou não, eu presumi que não e você está apenas mostrando o que você tentou.

Como sempre com macros, salve seu trabalho primeiro, crie uma cópia do arquivo e aplique-o (caso não faça o que você queria, significa que você tem um backup)

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

Então, algumas capturas de tela para ajudar a explicar.

A lista de e-mails na Planilha2 que são o que queremos remover da planilha1

Agora,Sheet1,alistarealemquequeremosremoveralgunsdeles.

E o resultado final depois de executar a macro

Eu tenho que admitir, o código que eu dei não é o mais eficiente, mas, baseado na sua pergunta, ele faz o que precisa!

    
por 09.06.2014 / 09:38
0

Existe uma solução simples para isso. A lógica REMOVE DUPLICATE do Excel é remover a duplicata que aparece mais abaixo na planilha.

Se você quiser remover todos os itens da planilha 2 que aparecem na planilha 1, basta colar os itens da planilha 2 na parte superior da planilha 1, executar as funções REMOVE DUPLICATE da coluna e excluir todos os itens da folha 2.

Fácil assim.

    
por 12.05.2015 / 02:52