Erreur d'exécution VBA 1004 "Erreur définie par l'application ou définie par l'objet" lors de la sélection de la plage
Je rencontre un problème avec une Erreur 1004 "définie par l'Application ou par l'Objet défini erreur" lors de la sélection d'une plage.
Je suis encore capable de sélectionner les lignes (c'est à dire Rows("21:21").select
) et à sélectionner des plages dans d'autres feuilles du même classeur. Je ne crois pas que l'erreur est dans le code. Peut-être que ses quelques réglages, je ne suis pas au courant de?
J'ai utilisé exactement le même code plusieurs fois avant, mais pour une raison que je ne peut pas le faire fonctionner dans ce sous (j'ai commenté à l'endroit où l'erreur se produit)...
Sub CopySheet1_to_PasteSheet2()
Dim CLastFundRow As Integer
Dim CFirstBlankRow As Integer
'Finds last row of content
Windows("Excel.xlsm").Activate
Sheets("Sheet1").Activate
Range("C21").Select
'>>>Error 1004 "Application-defined or Object-defined error" Occurs
Selection.End(xlDown).Select
CLastFundRow = ActiveCell.Row
'Finds first row without content
CFirstBlankRow = CLastFundRow + 1
'Copy Data
Range("A21:C" & CLastFundRow).Select
Selection.Copy
'Paste Data Values
Sheets("PalTrakExport PortfolioAIdName").Select
Range("A21").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Bring back to top of sheet for consistancy
Range("A21").Select
Range("A1").Select
End Sub
J'ai besoin d'obtenir tous de fantaisie dans ma copie comme le nombre de lignes changent fréquemment. Encore une fois, le code ci-dessous a été utilisé avant sans erreur... mais pas dans ce cas.
Dim CLastFundRow As Integer
Dim CFirstBlankRow As Integer
'Finds last row of content
Windows("Excel.xlsm").Activate
Sheets("Sheet1").Activate
Range("C21").Select
'>>>Error 1004 "Application-defined or Object-defined error" Occurs
Selection.End(xlDown).Select
CLastFundRow = ActiveCell.Row
'Finds first row without content
CFirstBlankRow = CLastFundRow + 1
source d'informationauteur thomas
Vous devez vous connecter pour publier un commentaire.
Peut-être que votre code est derrière la feuille Sheet1, de sorte que lorsque vous changez le focus à Feuil2 les objets ne peuvent pas être trouvé? Si c'est le cas, il suffit de spécifier votre cible de feuille de calcul qui pourraient vous aider:
Je ne suis pas très familier avec la façon de Sélectionner les œuvres parce que j'essaie de l'éviter autant que possible :-). Vous pouvez définir et de manipuler des plages sans les sélectionner. Aussi c'est une bonne idée d'être explicite à propos de tout ce dont vous avez de référence. De cette façon, vous ne perdez pas la bonne voie si vous allez à partir d'une feuille ou un classeur à l'autre. Essayez ceci:
C'est un peu tard mais peut être utile pour référence future. J'avais juste eu le même problème et je pense que c'est parce que la macro est enregistrée au niveau de la feuille de calcul. Cliquez-droit sur les modules nœud sur le projet VBA de la fenêtre, cliquez sur insérer un module puis collez votre macro dans le nouveau module (assurez-vous de supprimer celle qui est inscrite à la feuille de calcul).
Espérons que cette aide.
La même chose m'est arrivé. Dans mon cas, la plupart de la feuille de calcul a été en mode protégé (si les cellules pertinentes pour la macro ont été débloqués). Lorsque j'ai désactivé la protection de la feuille de calcul, la macro a bien fonctionné...il semble VBA n'aime pas les cellules verrouillées, même s'ils ne sont pas utilisés par la macro.
Certaines opérations dans Excel sont limité par la Mémoire disponible. Si vous répétez le même processus encore et il pourrait produire un dépassement de mémoire et excel ne sera pas en mesure de le répéter plus. Ce qui m'est arrivé lors de la tentative de créer plusieurs feuilles d'un même classeur.
Vous pouvez recevoir une "erreur d'Exécution 1004" message d'erreur lorsque vous définir par programmation un large éventail de chaîne à une plage dans Excel 2003
Dans Office Excel 2003, lorsque vous définissez par programmation d'une valeur de plage avec un tableau contenant une chaîne de grande taille, vous pouvez recevoir un message d'erreur semblable au suivant:
Ce problème peut se produire si une ou plusieurs des cellules dans un tableau (plage de cellules) contiennent une chaîne de caractères qui contient plus de 911 caractères.
Pour contourner ce problème, modifiez le script, de sorte qu'aucune des cellules dans le tableau contient une chaîne de caractères qui contient plus de 911 caractères.
Par exemple, la ligne suivante de code à partir de l'exemple de bloc de code ci-dessous définit une chaîne de caractères qui contient 912 caractères:
Les autres versions d'Excel ou libre alternatives comme Calc devrait fonctionner aussi bien.
J'ai eu un problème similaire & il fixe l'application de ces mesures:
J'espère que cela aidera quelqu'un.
J'ai pu supprimer le message d'erreur (erreur d'Exécution '1004'. Définie par l'Application ou de l'exploitation d'erreur définie par l') en définissant les compteurs comme Unique
J'ai eu un problème similaire, mais il s'avère que je viens de la référence d'une cellule qui a été hors de la page {c'est à dire les cellules(i,1).couper les cellules (i-1,2)}
Vous devez aller à la feuille de db pour obtenir la première ligne vide, vous pouvez essayer cette méthode.
J'ai eu un problème similaire lors de la tentative de boucle sur chaque feuille d'un classeur.
Pour le résoudre j'ai fait quelque chose comme cela
Et il a très bien fonctionné
J'espère que vous pourrez adapter à votre situation
J'ai rencontré le même problème et a constaté que la personne qui a créé la feuille de calcul a plusieurs colonnes verrouillé. J'ai enlevé la protection et tout a fonctionné comme prévu.
J'ai aussi eu le même problème et j'ai résolu en tant que ci-dessous.
en macro avoir une variable appelée rownumber et d'abord je l'ai mis à zéro. c'est l'erreur, car pas de feuille de calcul excel contient le numéro de ligne à zéro. lorsque j'ai mis que 1 et l'incrément de ce que je veux.
maintenant sa fonctionne bien.
J'ai également eu un problème similaire. Après la copie et le collage d'une feuille je voulais le curseur/la cellule sélectionnée à A1 pas de la plage que j'ai juste collé dans.
mais a eu une erreur 400 qui était en fait une erreur 1004
Vous devez activer la feuille avant de la modification de la cellule sélectionnée
cela a fonctionné
Vous avez besoin de savoir la vraie raison de cette erreur de code: 1004. Modifiez votre fonction/code VBA et d'exécuter le programme en mode debug pour identifier la ligne qui est à l'origine. Puis, ajouter le morceau de code ci-dessous pour voir l'erreur,
Note:
Déboguer les touches de raccourci que j'utilise dans PC:
L'Étape (F8), Pas (Maj + F8), L'Étape (Ctrl + Maj + F8)
J'ai ainsi eu le même problème et près de conduit fou. La solution était assez inattendu.
Mon Excel est livré par défaut que j'ai entrer des formules dans Excel Cellule comme suit:
Veuillez noter que les paramètres sont séparés par un point-virgule
;
. Maintenant, si vous collez exactement cette chaîne en une formule dans VBA, comme par exemple:Vous obtiendrez ce 1004-erreur avec absolument aucune explication. J'ai passé des heures à déboguer ce.. Tout ce que vous avez à faire est de remplacer tous les point-virgule par une virgule.
Vous pouvez utiliser le code suivant (Par exemple, si l'un a été de vouloir copier les données de la cellule de
Sheet2
àSheet1
).