Vous référant à une plage de cellules dans une autre feuille
Je suis en train d'essayer d'utiliser un bouton pour copier toutes les valeurs à l'intérieur d'une gamme de coller ces valeurs à l'intérieur d'une plage dans une autre feuille.
Excel me donne une erreur avec la deuxième ligne de ce code:
Sub COPYVALUES()
Range("Base_Copy!F15:Base_Copy!AK46").Select
Selection.Copy
Range("F15:AK46").Select
ActiveSheet.Paste
End Sub
Mes deux feuilles sont Base_Copy où les valeurs sont, un, je veux coller le dans Final_Copy
Vous devez vous connecter pour publier un commentaire.
Il existe 3 méthodes différentes pour faire référence à différentes feuilles. Le ci-dessous a été volée à partir d'ici: http://www.ozgrid.com/VBA/excel-vba-sheet-names.htm
Feuilles Nom De L'Onglet
Si vous avez déjà enregistré une macro dans Excel, qui fait référence à une feuille spécifique dans le Classeur vous savez que le code ne fera que continuer à fonctionner si le nom de la Feuille(s) restent les mêmes. Par exemple, un code comme; Sheets("Budget").Sélectionnez ne fonctionne plus si le Budget de la Feuille de re-nommée. C'est parce que l'enregistreur de macro génère du code basé sur l'onglet Feuilles nom, le nom que nous voyons quand dans Excel. Si elle vous fait vous sentir mieux, de nombreux programmeurs VBA également utiliser l'onglet de la Feuille les noms de plus de deux beaucoup des meilleurs moyens, comme ils ne connaissent pas mieux.
Numéro D'Index
Une des feuilles de l'Index est déterminé par sa position dans le Classeur. Le plus à gauche de la feuille de toujours avoir un numéro d'Index de 1, le suivant sur la droite sera de 2 et ainsi de suite. VBA Excel nous permet de spécifier une Feuille en utilisant son numéro d'Index, mais malheureusement, cette méthode n'est pas utilisée par Excel lorsque nous enregistrer une macro. Il utilise les Feuilles le nom de l'Onglet, comme; Sheets("Budget").Sélectionnez Si cette fiche a été le troisième à partir de la gauche, on pourrait utiliser: Feuilles(3).Sélectionnez. C'est souvent une meilleure option que l'aide de l'onglet de la feuille de nom, mais qui a encore des problèmes potentiels. Par cela, je veux dire, les feuilles de position dans le Classeur pourrait changer si nous ajouter, de supprimer ou de déplacer des feuilles.
Feuilles Nom De Code
C'est la méthode utilisée par les programmeurs VBA. Chaque Feuille dans un Classeur est donné un nom de Code unique qui ne change pas, même lorsque cette feuille est déplacé, renommé ou d'autres feuilles sont ajoutés. Chaque feuilles de nom de Code peuvent être vus seulement en allant dans l'Éditeur Visual Basic (Outils>Macro>Visual Basic Editor Alt+F11), puis l'affichage de l'Explorateur de Projet (Affichage>de l'Explorateur de Projet Ctl+R)
Dans la capture d'écran ci-dessus, le nom de Code de la feuille avec le nom de l'onglet de Budget est Feuil3. Une des feuilles de nom de Code est toujours le nom n'est pas à l'intérieur de la parenthèse lors de la recherche dans l'Explorateur de Projet. On peut faire référence à cette feuille avec du code VBA dans le Classeur à l'aide de: Feuil3.Sélectionnez comme revêtue de Feuilles("Budget").Sélectionnez la ou les Feuilles(3).Sélectionnez
Si votre Classeur est déjà plein de code VBA, enregistré ou écrit, qui n'utilise pas le nom de Code, vous pouvez le modifier au niveau des Projets (tout le code dans tous les Modules dans le Classeur) en allant à Modifier>Remplacez alors que dans le VBE (Visual Basic Editor).
Un Tirage dos
La seule fois vous ne pouvez pas utiliser les feuilles de nom de Code est lorsque vous faites référence à une Feuille dans un Classeur différent de celui que le code réside.
Avec les informations ci-dessus votre code devient maintenant:
Maintenant sur une note de côté: Vous n'avez pas à utiliser le copier/coller pour déplacer des données...
Essayer ci-dessous la seule ligne de code:
Worksheets("Final_Copy").Range("F15:AK46").Select
.Sheets("Final_Copy").Range("F15:AK46").Paste
. Je suis à l'aide de votre premier code et je voudrais ajouter l'action à un bouton de sorte qu'il fonctionne quand je clique sur un bouton sur la feuille de calcul EDIT: Ton deuxième code fonctionne parfaitement, mais je voudrais savoir comment l'associer à un bouton, merci d'avanceUtilisation:
Votre idée est plus de la formule de cellule de type, qui est valide dans la feuille, mais VBA il garde un peu plus simple.
Sub COPYVALUES() Sheets("Base_Copy").Range("F15:AK46").Select Selection.Copy Range("F15:AK46").Select ActiveSheet.Paste End Sub
Il ne marche pas encoreC'est aussi simple que cela. Vous devez spécifier votre
Worksheet
dans leWorksheets
objet avant laRange
.Voir le exemple dans la Gamme de l'Objet (Excel)
Pour quelque chose comme cela, vous souhaiterez peut-être enregistrer la macro pour voir la syntaxe de la façon dont il est écrit, puis de le modifier pour vos besoins.