2017-09-15 1 views
1

J'essaie de supprimer des lignes entières selon que la valeur de la cellule dans la colonne D est NULL ou non. Mon code entier à ce jour est:Comment supprimer des lignes en fonction de la valeur de cellule vide dans VBA

Sub DeleteNULL() 

Dim i As Long 

For i = 2 To 119713 
     If IsEmpty(Range("Di")) = True Then 
      Rows([i]).EntireRow.Delete 

     Else 
      If IsEmpty(Range("Di")) = False Then 
      Next i 

     End If 


End Sub 

Je erreurs à la compilation, soit Si, sans autre ou suivant sans pour, comment dois-je résoudre ce problème?

Merci d'avance.

+0

Vous devez boucle en arrière ou vous aurez des problèmes avec elle à sauter les lignes. – braX

+0

https://stackoverflow.com/questions/30462449/excel-vba-find-empty-cell-and-delete-the-row?rq=1 – braX

Répondre

1

Quelques choses:

  1. Placement d'un grand nombre de syntaxe est désactivée.
  2. Lors de l'ajout ou de la suppression de lignes, vous devez effectuer une boucle arrière en fonction de la façon dont Excel gère ces événements.

Code Voir ci-dessous:

Sub DeleteNULL() 

    Dim i As Long 

    For i = 119713 To 2 Step -1 
     If IsEmpty(Range("D" & i)) Then Rows([i]).EntireRow.Delete 
    Next i 

End Sub 
+0

Endif et Next ne doivent pas être en position permutée. –

+0

@AnkitBajpai - Correction. Je n'ai pas vu ma faute de frappe. Merci. Est-ce que c'est vous qui avez refusé? –

+0

Jamais. Mon pouce règle sur SO, Si vous ne pouvez pas obtenir des votes, Never Downvote d'autres. –