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 avec Sheets("Inspection Report").Columns("F:G").Copy et Sheets("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 être Shift:=xlToRight?
InformationsquelleAutor user3384820 | 2014-03-05