/ / Une boucle pour la suppression de feuilles obtient une erreur d'exécution - excel-vba, for-loop, vba, excel

Une boucle pour la suppression de feuilles obtient une erreur d'exécution - excel-vba, for-loop, vba, excel

J'ai créé une boucle for pour supprimer des feuilles d'unclasseur. Le bloc de code ajoute un classeur et compte le nombre de feuilles qu'il contient, généralement trois (3) par défaut. Donc, selon la fonction IF, il devrait supprimer les feuilles 2 et 3. Cependant, l’erreur d’exécution s’affiche après la suppression de la feuille 2. Je suis un débutant à VBA et je ne sais pas quoi faire. Aidez-moi s'il vous plaît. Merci beaucoup. (Remarque: si c est égal à 2, cela fonctionne bien et supprime le folio 3. L'erreur ne se produit que lorsque c est égal à 1.)

      c= 1
Dim Wbk As Workbook
Set Wbk = Workbooks.Add
i = Wbk.Worksheets.count = 3
Application.DisplayAlerts = False
If c < i Then
For j = (c + 1) To 3
Sheets(j).Delete
Next j
ElseIf c > i Then
Wbk.Worksheets.Add after:=Wbk.Worksheets("sheet3"), count:=(c - i)
Else: End If

Réponses:

0 pour la réponse № 1

Les feuilles ont un index commençant à 1. Donc, un classeur avec 3 feuilles a 1-3. Le problème ici est qu’une fois que vous avez supprimé la feuille deux (2), vous ne disposez plus que de 1-2 (1 est la feuille 1 et 2 est la feuille 3). Ainsi, lorsque vous augmentez à 3, il n’ya plus de feuille avec l’indice de 3.

Vous voulez quelque chose de plus comme ça.

  c= 1
Dim Wbk As Workbook
Set Wbk = Workbooks.Add
Dim i As Integer
Application.DisplayAlerts = False

For i = Wbk.Worksheets.count To 1 step -1
Sheets(i).Delete
Next iIndex