Excluindo linha inteira no excel se faltam dados em certas colunas ou colunas?

0

Acabei de fazer o download de um arquivo CSV da Micosoft dos Contatos do Google e gostaria de modificá-lo para que eu possa organizar os contatos no meu telefone. Estou voltando ao meu telefone "burro" como parte de um experimento meu para simplificar minha vida e o telefone "burro" não tem espaço para todos os contatos no arquivo.

Com isso dito, acho que o Google é um idiota por listar quase todo mundo que eu já enviei na vida da minha conta do Gmail e outros que eu não tenho (suponho que estes vêm de listas de e-mail em que estou ). Então, o resultado final é que eu tenho uma lista enorme de contatos, mas a maioria deles eu nem conheço e não tenho um número de telefone. Eu não envio e-mails no meu telefone (e obviamente também não os envio no meu celular), então eu não preciso deles.

Então eu importei o arquivo CSV para o excel. Basicamente, o que eu quero fazer é excluir uma linha inteira se, para essa linha, não houver dados nas colunas que me preocupam

R,S,T,U,V,W,AL,AM,AN,AO,AP,BG,BH,BR,BS,BU,BV

Então deixe-me simplificar o problema um pouco. Suponha que primeiro, meio e sobrenome estejam nas colunas A , B e C , respectivamente. Em seguida, o número do celular está na coluna D , o número de telefone residencial está na coluna E e o e-mail está na coluna F . Para cada contato na lista, desejo excluir sua linha se ela não tiver dados na coluna D ou E ou BOTH, mas não me importo se ela tiver dados na coluna F .

Eu escrevi a macro a seguir, mas parece estar excluindo toda a minha planilha, o que não deveria estar fazendo. Eu sou muito novo no Excel Macros e VBA, esta é a primeira vez que eu fiz algo com eles, então eu gostaria de alguma ajuda.

Sub deleteBlankRows()
On Error Resume Next
Columns("R:R").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("S:S").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("T:T").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("U:U").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("V:V").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("W:W").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("AL:AL").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("AM:AM").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("AN:AN").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("AO:AO").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("AP:AP").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("BG:BG").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("BH:BH").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("BR:BR").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("BS:BS").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("BU:BU").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("BV:BV").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
    
por audiFanatic 16.02.2014 / 07:10

1 resposta

1

Eu acho que sua idéia é boa, não é como o VBA quer trabalhar. Eu tentaria com um loop como este -

Sub deleterows()

Dim intcount As Integer
Dim introw As Integer

intcount = ActiveSheet.UsedRange.Rows.Count

For introw = intcount To 1 Step -1
    If Range("B" & introw) = "" Or Range("C" & introw) = "" Then
    Range("B" & introw).EntireRow.Delete
    End If

Next

End Sub

Na condição if , basta definir as colunas que deseja verificar como Range("X" & introw) = "" separadas por Or .

    
por 16.02.2014 / 11:28