vba - comment à force de l'ignorer/continuer au-delà de 1004 erreur
Fondamentalement, je n'ai ce sous qui insère des images dans ma feuille de calcul:
ActiveCell.Select
Dim picname As String
picname = ActiveCell.Value
ActiveCell.Offset(-1, 0).Select
Dim picture
Set picture = ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "\Images\" & picname & ".jpg")
Je suis en cours d'exécution de ce sous avec Application.Exécuter à l'intérieur d'une boucle. Si il n'y a pas d'image dans le dossier du chemin d'accès, j'obtiens "erreur d'Exécution 1004: Impossible d'obtenir la propriété Insertion de la Photo de classe", et la boucle s'arrête. Comment puis-je contourner l'erreur, de sorte que la boucle peut continuer?
OriginalL'auteur bsapaka | 2014-01-17
Vous devez vous connecter pour publier un commentaire.
La
On Error
construire existe pour ce genre de chose. Il est livré avec divers option:Une fois que votre code est confronté à cette déclaration, il saute à
label:
si une erreur se produit. Il est utile si vous avez besoin de faire une gestion d'erreur, surtout si il ya plusieurs endroits où les choses peuvent aller mal, mais ils ont toujours le même "besoin de réparer quelque chose de" routine. Vous pouvez utiliserErr.Number
ouErr.Description
à trouver ce qui a causé l'erreur.Est utile lorsque vous avez une seule ligne qui peut causer une erreur, mais si elle ne vous voulez ignorer et de continuer. Ceci est probablement la bonne chose à faire ici.
Ne pas oublier de mettre
Après avoir passé le "danger", sinon votre code (dans le champ d'application dans lequel vous avez émis la commande initiale) continuer à ignorer les erreurs. Dangereux, que.
De sorte que votre code devrait être modifié pour
On Error
bien couvert.OriginalL'auteur Floris
Erreur de Manipulation dans tels dossiers est nécessaire lorsque vous n'avez pas d'autre option ou vous vous attendez à une erreur et souhaitez continuer. Dans votre cas, il suffit d'utiliser une commande DIR pour vérifier si le fichier existe et puis il suffit d'insérer l'image. Par exemple.
Le problème avec
est que dans la dernière partie du code, vous devrez ajouter une autre ligne
dans le cas où vous êtes en interaction avec cet objet. Où, comme dans le
DIR
cas, votre code est pris en sandwich entreIF/EndIF
et vous ne sera pas exiger des vérifications supplémentaires.OriginalL'auteur Siddharth Rout
insérer
avant la boucle
On Error Resume Next
.OriginalL'auteur ron