Supprimer la feuille de calcul dans Excel en utilisant VBA

J'ai une macros qui génère un certain nombre de classurs. J'aimerais que les macros, au début de la course, vérifient si le file contient 2 feuilles de calcul et supprimez-les si elles existent.

Le code que j'ai essayé était:

If Sheet.Name = "ID Sheet" Then Application.DisplayAlerts = False Sheet.Delete Application.DisplayAlerts = True End If If Sheet.Name = "Summary" Then Application.DisplayAlerts = False Sheet.Delete Application.DisplayAlerts = True End If 

Ce code renvoie une erreur:

erreur d'exécution # 424, object requirejs.

J'ai probablement le mauvais formatting, mais s'il y a un moyen plus facile de le faire, cela serait très utile.

Considérer:

 Sub SheetKiller() Dim s As Worksheet, t As Ssortingng Dim i As Long, K As Long K = Sheets.Count For i = K To 1 Step -1 t = Sheets(i).Name If t = "ID Sheet" Or t = "Summary" Then Application.DisplayAlerts = False Sheets(i).Delete Application.DisplayAlerts = True End If Next i End Sub 

REMARQUE:

Parce que nous supprimons , nous exécutons la boucle vers l'arrière.

Essayez ce code:

 For Each aSheet In Worksheets Select Case aSheet.Name Case "ID Sheet", "Summary" Application.DisplayAlerts = False aSheet.Delete Application.DisplayAlerts = True End Select Next aSheet 

Vous pouvez utiliser On Error Resume Next il n'est pas nécessaire de boucler toutes les feuilles du classur.

Remarque: Lorsque le classur ne contiendra que ces deux feuilles, seule la première feuille sera supprimée.

 Dim book Dim sht as Worksheet set book= Workbooks("SomeBook.xlsx") On Error Resume Next Application.DisplayAlerts=False Set sht = book.Worksheets("ID Sheet") sht.Delete Set sht = book.Worksheets("Summary") sht.Delete Application.DisplayAlerts=True On Error GoTo 0 
 Worksheets("Sheet1").Delete Worksheets("Sheet2").Delete 

essayez ceci dans vos déclarations if:

 Application.DisplayAlerts = False Worksheets(“Sheetname”).Delete Application.DisplayAlerts = True