VBA Excluir linha

Excel VBA Excluir linha

Normalmente na planilha do Excel, temos dois métodos diferentes para excluir linhas, um sendo o atalho do teclado e outro usando o método do botão direito do mouse e inserir, mas no VBA temos que usar o comando delete e a instrução da planilha para excluir todas as linhas juntas, o truque para isto é, se precisarmos deletar uma única linha, fornecemos uma referência de linha única, mas para as colunas múltiplas fornecemos referências de linhas múltiplas.

Usando o método VBA Delete Row, podemos excluir todas as linhas em branco, podemos excluir a linha com base no valor da célula, também podemos excluir a linha inteira se alguma das células estiver em branco.

Neste artigo, discutiremos o método “VBA Delete Row”. Mantenha-se ocupado pelos próximos 15 a 20 minutos para aprender sobre o conceito.

Como excluir uma linha?

Você pode baixar este modelo VBA de exclusão de linha em Excel aqui - modelo de exclusão de linha VBA em Excel

Exemplo 1

No VBA, precisamos mencionar a linha que estamos excluindo.

Código:

 Sub DeleteRow_Example1 () Células (1, 1) End Sub 

Células (1, 1) significa primeira coluna da primeira linha, ou seja, célula A1. Então usamos o método “delete”.

Código:

 Sub DeleteRow_Example1 () Células (1, 1) .Delete End Sub 

Agora, isso excluirá a primeira célula. Todos os valores do lado direito irão deslocar uma célula para a esquerda.

Exemplo # 2

Se você quiser deletar a linha inteira, precisamos usar a propriedade “WholeRow” então precisamos usar o método “delete” para deletar toda a linha da célula que selecionamos.

Código:

Sub DeleteRow_Example2 () Células (1, 1) .EntireRow. Excluir End Sub

Por exemplo, inseri alguns caracteres em uma planilha do Excel como segue.

Agora, se eu executar este código, ele excluirá a linha inteira, não uma única célula.

Exemplo # 3

Podemos excluir a linha de várias maneiras. No exemplo acima, excluímos a linha usando a propriedade CELLS, agora veremos como excluir usando a propriedade ROWS.

Agora precisamos mencionar qual é a linha que precisamos excluir, digamos que precisamos excluir a 5ª linha.

Agora use a propriedade “WholeRow”.

Depois de selecionar a propriedade o que precisamos fazer, ou seja, método. Precisamos deletar a linha.

Código:

 Sub DeleteRow_Example3 () Rows (5) .EntireRow.Delete End Sub 

Portanto, este código excluirá a 5ª linha.

Exemplo # 4

Excluir várias linhas usando objeto Range

Como podemos excluir várias linhas?

Podemos usar o objeto VBA RANGE para excluir mais de uma linha. Suponha que você tenha alguns valores de células A1 a A6.

Agora, quero excluir as primeiras 5 linhas, para que possa fazer referência a essas linhas usando o objeto Range como “Range (“ A1: A5 ”)”

Código:

 Sub DeleteRow_Example4 () Range ("A1: A5") End Sub 

Agora, quero usar a propriedade “WholeRow” da palavra.

Código:

 Sub DeleteRow_Example4 () Range ("A1: A5") .EntireRow End Sub 

Em toda esta linha, precisamos executar o método de exclusão, portanto, use o método Delete.

Código:

 Sub DeleteRow_Example4 () Range ("A1: A5"). WholeRow .Delete End Sub 

Agora, isso excluirá as linhas selecionadas.

Exemplo # 5

Excluir linhas com base no valor da célula

Também podemos usar este método “WholeRow.Delete” para excluir a linha com base no valor da célula em VBA. Por exemplo, tenho valores Sim e Não da célula A1 a A10.

Agora precisamos excluir as linhas que possuem o valor “Não”. Para realizar esta tarefa, precisamos usar a função “IF” com loops para deletar todas as linhas que possuem o valor “Não”.

O código abaixo fará o trabalho para nós.

Código:

 Sub DeleteRow_Example5() Dim k As Integer For k = 10 To 1 Step -1 If Cells(k, 1).Value = "No" Then Cells(k, 1).EntireRow.Delete End If Next k End Sub 

Example #6

Delete All the Blank Cells Rows

There are situations where we need to delete the entire row if any of the cells in the range is blank. For example, I have below set of data.

All the colored cells are blank, so I need to delete the entire row. We can perform this task with two sets of code. Below is the code.

Code:

 Sub DeleteRow_Example6() Range("A1:F10").SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub 

This will identify the blank cells in the range A1 to F10.IF any blank cells found will delete the entire row.

The problem with this code is it will only delete the blank cell’s row only in the range A1 to F10, but if any cells are blank in any other cells it will not delete. So keeping this in mind I have written one more code.

Code:

 Sub DeleteRow_Example7() Dim RangeToDelete As Range Dim DeletionRange As Range Set RangeToDelete = Application.InputBox("Please select the range", "Blank Cells Rows Deletion", Type:=8) Set DeletionRange = RangeToDelete RangeToDelete.SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub 

When you run this code firstly it will ask you to select the range with an input box appearing in front of you.

After selecting the range you need to click on OK, it will delete all the blank cells rows in the selected range.