Excel 2003 VBA: Déplacer une feuille dans un nouveau classeur qui est référencé par une variable
J'ai une fonction qui est destiné à être exécuté le ShowPages()
commande d'un tableau croisé dynamique, puis enregistrer chaque feuille dans un fichier séparé.
Voici comment je souhaite que je pourrais le faire:
Sub Split()
ThisWorkbook.Sheets("Data").PivotTables("Data").ShowPages PageField:="Codename"
Dim newWb As Workbook
For Each s In ThisWorkbook.Sheets
If s.Name <> "Data" Then
Set newWb = s.Move #This is the line I'm trying to work out
newWb.SaveAs Filename:="C:\Export\" + s.Name + ".xls"
newWb.Close
End If
Next s
End Sub
Malheureusement, c'est en cours d'exécution dans un tas de questions, à faire de ne pas avoir créé des objets et autres choses de ce genre (à juste titre). Quelle est la façon la plus sensée à faire cela?
Vous devez vous connecter pour publier un commentaire.
Même si c'est vieux, et l'on a accepté de répondre par soldieraman est très agréable, je voulais juste ajouter une chose. Le VBA Excel des Feuilles.Copie et de Feuilles.Méthodes de déplacement ont une caractéristique très intéressante. Ils prennent deux arguments optionnels, "Avant" ou "Après", pour la position d'un déplacé, copié de la feuille. La documentation Excel note que:
Donc, il est presque surprenant, mais vous pouvez simplement dire:
dans la accepté de répondre, à la place de:
Le reste de soldieraman code du beau travail avec cette simplification.