VBA: activer/de la sélection d'une feuille de calcul/la ligne/cellule
Bonjour Stackoverflowers,
Je suis en train d'utiliser un bouton, qui va d'abord vers un autre fichier excel dans un répertoire spécifique. Lors de l'exécution de quelque chose, je veux ajouter une ligne dans une feuille du fichier excel, je fais tourner le bouton de.
Pour ce faire, j'ai besoin d'activer un certain rang, ou de cellules à utiliser ce
ActiveCell.EntireRow.Insert
mais il continue à me dire:
activate method of range class failed
mon dernier trail: le
Sheet1.Cells(2, 3).Activate
ActiveCell.EntireRow.Insert
Quelqu'un peut-il me dire comment obtenir ce fait? je pense que parce que je suis dans un autre classeur ou quelque chose
Grâce
- Êtes-vous activer le classeur en premier?
- Essayez La Feuille Sheet1.Les cellules(2,3).EntireRow.Insérer. Sinon, essayez l'Application.GoTo La Feuille Sheet1.Les cellules(2,3)
- Ok, re-lire, essayez @Barranka suggestion du premier.
- Je ne pouvais pas activer le classeur, pouvez vous me dire comment? je vais essayer les autres solutions pour le moment
- qui a travaillé! j'ai été en utilisant cette aussi (ancien code que j'ai essayé): Sheets("Feuil1").Les lignes(2).Insérer, ne fonctionne pas trop
- dim openedWorkbook comme Classeur. ensemble openedWorkbook = classeurs.open("path"). openedWorkbook.activer.
- Heureux de vous aider 🙂
- Je l'ai utilisé que pour ouvrir un autre fichier. suggérez-vous que je le fais pour mon fichier excel d'origine pour y retourner?
- Juste une chose: je pense que vous devriez utiliser
Cells(2,3).Select
au lieu deCells(2,3).Activate
- hmmmm, je ne suis pas expert, mais pouvez-vous me dire pourquoi? alors je peux comprendre pour la suite 🙂
- Je suggère que vous utilisez ce code pour ouvrir/activer votre nouveau classeur. Vous pouvez utiliser les Classeurs("filename.xls").Activer pour activer un classeur ouvert.
- Pourquoi utilisez-vous activer en premier lieu? Vous ne réalisez que vous n'avez pas besoin de sélectionner ou activer ni le classeur ou de la cellule, à insérer des cellules, à droite?
- + 1 @Reafidy pour le seul qui a suggéré de ne pas utiliser
.Activate
-@himura: Veuillez consulter ce lien: stackoverflow.com/questions/10714251/... - oui j'ai bien compris. Le truc, c'est que tous les exemples que j'ai vu sur le net pour ajouter des lignes utilise activer ou de sélectionner... et depuis je suis encore nouveau pour VBA, je ne pouvais pas comprendre la torsion et je voulais aller le plus près les exemples
- Je comprends. Cependant, la façon correcte est d'éviter d'utiliser sélectionner/activer. Seulement une ou deux fois et je n'ai jamais trouvé un motif légitime d'utiliser sélectionner/activer. L'apprentissage de la bonne façon maintenant, vous fera économiser des tonnes de maux de tête, il suffit de prendre un coup d'oeil à la deuxième section de Barranka du code si vous ne l'avez pas déjà.
Vous devez vous connecter pour publier un commentaire.
C'est juste un exemple de code, mais il peut vous aider à obtenir sur votre chemin:
Je suis en supposant que vous pouvez ouvrir le livre (appelé
Workbook2
dans l'exemple).Je pense (mais je ne suis pas sûr), vous pouvez squash tout cela dans une seule ligne de code:
De cette façon, vous n'aurez pas besoin d'activer le classeur (ou de la feuille ou de la cellule)... Évidemment, le livre doit être ouvert.
ActiveSheet.Range("B3").Select
avecActiveSheet.Cells(2,3).Select
Workbooks("Workbook2").Sheets("Sheet2").Range("B3").EntireRow.Insert