VBA Excel: erreur d'Exécution '1004': la méthode Select de la classe Range a échoué
Je suis en train d'écrire une macro pour travailler dans une feuille excel qui est enregistré dans un modèle exporté .xls ou .xlsx à partir d'une autre application. Cette macro est de copier deux colonnes " x " nombre de fois selon une quantité qui est entré dans une cellule.
Sub Matrix_Quantity()
Dim x As Integer
x = ActiveWorkbook.Sheets("Inspection Sampling Matrix").Cells(11, 4)
Dim n As Integer
n = x - 1
For numtimes = 1 To n
'Loop by using x as the index number to make x number copies.
Sheets("Inspection Report").Columns("F:G").Select
Selection.Copy
Selection.Insert Shift:=x1 + nToRight
Next
End Sub
Le problème que j'ai est que lorsque la macro est exécutée dans le modèle (.xlt), il fonctionne très bien. Dès que le modèle est converti .xls ou .xlsx il des taches de travail et donne une erreur d'exécution. Lors du débogage de la macro il met en évidence
Sheets("Inspection Report").Columns("F:G").Select
Mon sentiment est qu'il est à la recherche pour sélectionner les colonnes dans la .xlt classeur, mais lorsqu'ils sont convertis .xls ou .xlsx il est toujours en train de regarder pour le .xlt classeur et je ne suis pas sûr de savoir comment ou pourquoi sa fait cela.
- c'est parce que votre feuille de
Inspection Report
n'est pas active au moment de la macro s'exécute. Lire comment éviter à l'aide de Select/Actifs consolidés, s'il vous plaît. Vous pouvez remplacer votre code avecSheets("Inspection Report").Columns("F:G").Copy
etSheets("Inspection Report").Columns("F:G").Insert Shift:=x1 + nToRight
- Merci pour la réponse. Lorsque je branche le code que vous avez recommandé et exécutez la macro Excel de collision avec aucune erreur. Simplement, il affiche l'erreur windows "de Microsoft Excel a Cessé de fonctionner"
- En fait, je ne comprends pas de quoi tu tring à faire ici:
Shift:=x1 + nToRight
? devrait-il êtreShift:=xlToRight
?
Vous devez vous connecter pour publier un commentaire.
Quand j'ai essayé d'exécuter un script de diviser les classeurs et les enregistrer en tant que fichiers distincts avec leurs noms de classeur, j'ai reçu une erreur d'exécution 1004 parce que j'ai eu l'un des onglets cachés.
Assurez-vous d'AFFICHER tous les onglets avant l'exécution d'un split classeur script!
Vous devez écrire le code sur une autre feuille de référencement différentes.
Essayer d'écrire la même chose dans le Module.
code sheet.Activate (Where sheet is the Worksheet I'm using) sheet.Range("A1").Select code
Et il s'est débarrassé de l'erreur. Excel commutateurs de la feuille de travail pour une seconde avant de continuer ce qui est ennuyeux, mais pas que les grandes d'un accord.J'ai eu le même genre de problème et simoco réponse m'a mis sur la bonne voie. Cela devrait fonctionner: