2017-09-01 2 views
0

J'utilise le code ci-dessous pour effacer le contenu des lignes A2: H2 à l'exception du premier où j'ai l'en-tête. Ce code fonctionne bien s'il n'y a pas de cellules vides entre les deux. Mais comment puis-je effacer tout, même s'il y a une cellule vide?Effacer les données de lignes entières à l'exception de la première ligne en utilisant excel VBA

Sub Clear() 

Dim s1Sheet As Worksheet 

Set s1Sheet = Workbooks("StockScreen.xlsm").Sheets("TimeStampWork") 

s1Sheet.Range(s1Sheet.Range("A2:H2"), s1Sheet.Range("A2:H2").End(xlDown)).ClearContents 

End Sub 

Répondre

0

Au lieu de

s1Sheet.Range(s1Sheet.Range("A2:H2"), s1Sheet.Range("A2:H2").End(xlDown)).ClearContents 

essayer

s1Sheet.Range("A2:H" & s1Sheet.Cells(s1Sheet.Rows.Count, "A").End(xlUp).Row). 

ou

With s1Sheett 
    .Range("A2:H" & .Cells(.Rows.Count, "A").End(xlUp).Row).ClearContents 
End With 

ici la dernière ligne avec les données sont comptées à l'aide Column A.

+0

@acr - Voir ma mise à jour de réponse. – Mrig

0

Si vous voulez simplement supprimer toute la ligne à partir d'un numéro de ligne spécifique à un numéro de ligne spécifique, vous pouvez éviter d'utiliser les propriétés Range et Cell, mais vous pouvez utiliser la propriété Rows:

s1Sheett.Rows("2:10").ClearContents 

Ou si vous souhaitez supprimer le tout d'un numéro de ligne spécifique à la dernière ligne avec des données, vous pouvez utiliser:

s1Sheett.Rows("2:" & currentSheet.Rows.Count).ClearContents