Macro Excel pour la création de nouvelles feuilles de calcul
Je suis en train de faire une boucle par certaines colonnes d'une ligne et de créer de nouvelles feuilles de calcul avec le nom de la valeur de la colonne/ligne que je suis.
Sub test()
Range("R5").Select
Do Until IsEmpty(ActiveCell)
Sheets.Add.Name = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
Loop
End Sub
Ce code crée le premier correctement au départ de R5 mais il semble que la macro commutateurs à cette feuille de calcul et ne pas terminer la tâche.
Vous devez vous connecter pour publier un commentaire.
Les Feuilles.Ajouter déplace automatiquement votre sélection à la nouvelle feuille (comme si vous insérez une nouvelle feuille à la main). En conséquence, le Décalage est basé sur la cellule A1 de la feuille, qui est devenu votre choix - vous sélectionnez une cellule vide (comme la feuille est vide) et la boucle se termine.
Cela fonctionnera mieux .... vous affectez la liste des noms à une variable objet de type Range et de travailler cela dans une boucle For each. Après vous finir de vous mettre votre Sélection en arrière d'où vous êtes venus.
CurrentRegion
échouera s'il existe des données dans R6, S6, etc. Il ne fonctionnera que si il n'y a pas de données dans la ligne 6.loop through some columns in a row
est ce que l'OP a dit, donc je pense qu'elle doit être limitée à 1 rangée, quiCurrentRegion
ne le fera pas en fonction de l'ensemble de données. Je pense qu'il est important de noter que le tirage au retour à l'aide deCurrentRegion
fonction si qui va être la solution que vous donnez.Sheets.Add
fera automatiquement à votre nouvelle feuille de la feuille active. Votre meilleur pari est de déclarer des variables de vos objets (ce qui est toujours une bonne pratique) et de les référencer. Voir comme je l'ai fait ci-dessous:De gestion d'erreur doit toujours être utilisé lors de la dénomination des feuilles à partir d'une liste de gérer
Pls changement
Sheets("Title")
de faire correspondre le nom de la feuille (ou de position) de votre page de titreLe code ci-dessous utilise une variante tableau plutôt qu'une fourchette pour le nom de la feuille pour des raisons de performances, bien que la désactivation de
ScreenUpdating
est susceptible de faire une grande différence pour l'utilisateur.End(xlDown)
devrait être.End(xltoRight)
depuis que l'utilisateur a voulu de recherche à travers des colonnes d'une ligne.C'est probablement le plus simple. Pas de gestion d'erreur, juste un code pour créer des feuilles de