Usuário com melhor resposta
For para excluir linha

Pergunta
-
Olá podem ajudar ?
Tenho uma coluna de dados em uma planilha e na segunda coluna contem os valores 1, 2 e "indisponivel"
Preciso criar um For que percorre a coluna até o final e quando for 2 altere para o numero 1 e duplique estes dados para a ultima linha da planilha.
E quando encontrar o texto "Indiponivel" exclua a linha.
Tentei realizar desta forma mas como estou definindo por linhaf o for pula linhas
Sub teste() linhaf = Sheets("plan").Range("a65000").End(xlUp).Row For T = 2 To 500 If Cells(T, 8) = "Indisponivel" Then ActiveCell.Rows(T).EntireRow.Select Selection.Delete End If Next T End Sub
Grato;
Bruno
Respostas
-
Bruno,
As boas práticas de programação de Excel no que se refere à exclusão de linhas sugere que seja feito do fim da lista até o início. Ou seja, seu contador começa no fim da lista e descreve até o início da mesma. Recomenda-se também declarar as variáveis. Veja como alterei seu código:
Sub teste() Dim lngLast As Long Dim n As Long With Sheets("plan") lngLast = .Cells(.Rows.Count, "A").End(xlUp).Row For n = lngLast To 2 Step -1 If .Cells(n, "H") = "Indisponivel" Then .Rows(n).Delete End If Next n End With End Sub
http://www.ambienteoffice.com.br- Marcado como Resposta BRUNOJUL sábado, 2 de outubro de 2010 12:55
Todas as Respostas
-
-
Bruno,
As boas práticas de programação de Excel no que se refere à exclusão de linhas sugere que seja feito do fim da lista até o início. Ou seja, seu contador começa no fim da lista e descreve até o início da mesma. Recomenda-se também declarar as variáveis. Veja como alterei seu código:
Sub teste() Dim lngLast As Long Dim n As Long With Sheets("plan") lngLast = .Cells(.Rows.Count, "A").End(xlUp).Row For n = lngLast To 2 Step -1 If .Cells(n, "H") = "Indisponivel" Then .Rows(n).Delete End If Next n End With End Sub
http://www.ambienteoffice.com.br- Marcado como Resposta BRUNOJUL sábado, 2 de outubro de 2010 12:55