Se remover uma linha com VBA

no Excel, poderá apagar uma linha se carregar com o botão direito no número da linha e seleccionar depois a opção Apagar. Mas quando você quer excluir linhas usando métodos mais sofisticados você tem que usar VBA. Ele permitirá que você exclua linhas de muitas maneiras diferentes.

apagar uma linha específica

a forma mais básica de apagar uma linha na VBA é usando o número da linha.

Sub deleteSpecificRow()Rows(4).DeleteEnd Sub

isto irá apagar a quarta linha cada vez que executar a macro.

apagar várias linhas

Pode também apagar algumas linhas de uma vez. Em vez de seleccionar o número da linha, seleccione um intervalo de linhas.

Sub deleteMultipleRows()Rows("2:4").DeleteEnd Sub

irá apagar as linhas 2, 3 e 4.

Excluir linhas selecionadas

Então, até onde podemos criar macros que excluídos linhas com números fixos dentro do código. Desta vez, vamos excluir linhas de uma seleção. Vamos usar o seguinte código.

Sub deleteSelectedRows()Selection.EntireRow.DeleteEnd Sub

Excluir linhas em branco

neste exemplo, o Excel identifica quais as células que estão em branco, seleciona-os e remove as linhas em que eles estão presentes.

Sub deleteBlankRows()Selection.SpecialCells(xlCellTypeBlanks).SelectSelection.EntireRow.DeleteEnd Sub

Esta macro exclui linhas de seleção somente se contém a frase “Má Fila”.

precaução

lembre-se que o texto é sensível à capitalização.

Sub deleteRowswithSelectedText()For Each Cell In Selection If Cell.Value = "Bad Row" Then Rows(Cell.Row).ClearContents End IfNextSelection.SpecialCells(xlCellTypeBlanks).SelectSelection.EntireRow.DeleteEnd Sub

de análise de Código

2. O loop passa por cada elemento na seleção.3. O Excel verifica o valor real da célula e se o valor é exatamente “linha Ruim”.4. Se a condição for cumprida, o Excel limpa o conteúdo da célula. Não podemos apagar a célula porque a posição da célula irá mudar e algumas das “linhas más” podem ficar.7. Quando todas as “linhas más” são limpas, então o Excel seleciona essas células.

8. Em seguida, apaga linhas dessas células.

se também quiser apagar as linhas que consistem nesta frase, e não apenas a correspondência exacta, use a função InStr. Esta função devolve a posição da primeira ocorrência da frase.

Alterar

Cell.Value = "Bad Row"

InStr(Cell, "Bad Row") > 0

temos quatro exemplos de diferentes dentro da nossa folha de trabalho. Cada um deles retorna uma posição.o

  • “Bad Row”devolve 1
  • ” Good Row”devolve 0
  • ” 1 Bad Row”devolve 3
  • ” Bad Row !”devolve 1

isso significa que todas as linhas, excepto “boa linha”, serão removidas.

Excluir linha onde o tipo de célula é uma cadeia de caracteres

neste exemplo, vamos excluir uma linha, se o tipo de célula é uma seqüência de caracteres.

À primeira vista, as células A3, A4 e A5 parecem ser do mesmo tipo. Mas quando você olhar para o que está acontecendo nos bastidores (Ctrl + `) você verá que cada um deles é diferente.

Sub deleteifString()Selection.SpecialCells(xlCellTypeConstants, 2).SelectSelection.EntireRow.DeleteEnd Sub

Na segunda linha, você tem o seguinte código: xlCellTypeConstants. Significa que estamos à procura de constantes. Número 2 significa o segundo tipo, que é texto.

Excel irá escolher apenas os valores do tipo de texto.

O resultado.

apagar as linhas Pares/Ímpares

Agora vamos apagar apenas as linhas que estão pares.

Sub deleteEven()For Each Cell In Selection If Cell.Row Mod 2 = 0 Then Rows(Cell.Row).ClearContents End IfNextSelection.SpecialCells(xlCellTypeBlanks).SelectSelection.EntireRow.DeleteEnd Sub

o código é muito semelhante ao do exemplo anterior. Só há uma diferença.

célula.Linha Mod 2 = 0

isto significa, se o restante após a divisão for 0 (para números: 2, 4, 6, 8, …) Então o número está par, Se é 1 então é um número ímpar (1, 3, 5, 6, …).

folha de cálculo e entusiasta de Python.

Post Views: 72,354

Deixe uma resposta

O seu endereço de email não será publicado.