Macro VBA sur plusieurs feuilles de calcul
Je suis en train de lancer une seule macro qui exécute des fonctions sur plusieurs feuilles de calcul. Disons que j'ai attribué le bouton de macro sur la feuille de travail 4. J'ai listé les fonctions que j'souhaitez effectuer, étape par étape:
1) Sélectionner les cellules dans la feuille de travail 4 et copie de cellules adjacentes dans la feuille de travail 4.
2) supprimer une plage de cellules dans la feuille de travail 3.
3) COUPER plage de cellules dans la feuille de travail 2 collez cette plage de cellules dans la feuille de travail 3.
4) Prenez la plage de cellules à partir d'un classeur distinct et copiez-le dans la feuille de travail 2. (Je sais que c'est un tout autre problème que le classeur est automatiquement publié et je vais devoir trouver un moyen de relier les deux.)
5) mise à Jour des tableaux croisés dynamiques situé à l'intérieur de la Feuille de travail 4 et la Feuille de travail 3.
J'aimerais de l'aide sur les 3 premières fonctions de ce. Je l'ai collé mon code ci-dessous.
Sub START()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim sh3 As Worksheet
Dim sh4 As Worksheet
Set sh1 = ActiveWorkbook.Sheets("Brand")
Set sh2 = ActiveWorkbook.Sheets("CurrentWeek")
Set sh3 = ActiveWorkbook.Sheets("PriorWeek")
Set sh4 = ActiveWorkbook.Sheets("Pivot")
sh4.Range("B29:B30").Select
Selection.Copy
sh4.Range("C29").Select
ActiveSheet.Paste
sh3.Range("A4:AC1000").Select
Selection.Delete
sh2.Range("A4:AC1000").Select
Selection.Copy
sh3.Range("A4").Select
ActiveSheet.Paste
End Sub
Ça marche... mais il ne fonctionne que quand je suis dans le droit de la feuille de calcul pour exécuter une fonction spécifique.
source d'informationauteur kmiao91
Vous devez vous connecter pour publier un commentaire.
Par la suppression de la
select
leselection
et laactivesheet
vous serez en mesure de faire de cette feuille indépendanteQue vous êtes hors d'un bon début. Juste un peu plus de raffinement et vous l'aurez.
Fondamentalement, il n'y a pas besoin de
.Select
vos gammes (feuilles, classeurs, etc), au moins dans ce cas. Vous pouvez travailler directement avec eux, et en utilisant leCopy
d'approvisionnement de la destination où ils seront copiés.Voir code ci-dessous:
sheets("nom1").range("B29:B30").copy Destination:=sheets("nom2").range("C29")
Copie de l'un à l'autre de la feuille en supposant que les noms de feuille de calcul sont nom1 et nom2