Partage via


Nom correspondance de type de l’argument ByRef

Un argument passé ByRef (par référence), la valeur par défaut doit avoir le précis type de données prévu dans les procédure. Causes et solutions pour cette erreur :

  • Vous avez passé un argument d’un type dont le type attendu n’a pas pu être forcé.

    Par exemple, cette erreur se produit si vous essayez de transmettre un entier variable lorsqu’un Long est prévu. Si vous souhaitez contrainte de se produire, même si elle entraîne la perte d’informations, vous pouvez passer de l’argument dans son propre ensemble de parenthèses.

    Par exemple, pour transmettre le variante argument MyVar une procédure attendues par un entier argument, vous pouvez écrire l’appel comme suit :

      Dim MyVar 
      MyVar = 3.1415 
      Call SomeSub((MyVar)) 
    
      Sub SomeSub (MyNum As Integer) 
      MyNum = MyNum + MyNum 
      End Sub
    

    Placer l’argument dans son propre ensemble de parenthèses force l’évaluation en tant qu’un expression. Pendant l’évaluation, la partie fractionnaire du nombre est arrondie (ne pas tronquées) afin d’en respecter le type d’argument attendu. Le résultat de l’évaluation est placé dans un emplacement temporaire et une référence à l’emplacement temporaire est reçue par la procédure. Par conséquent, le MyVar d’origine conserve sa valeur.

    Remarque

    Si vous ne spécifiez pas un type pour un variable, la variable reçoit le type par défaut, variante. Ce n’est pas toujours évident. Par exemple, le code suivant déclare deux variables ; la première, MyVar, est de type Variant, tandis que la seconde, AnotherVar, est de type Integer.

     Dim MyVar, AnotherVar As Integer 
    

Pour plus d’informations, sélectionnez l’élément en question et appuyez sur F1 (sur Windows) ou AIDE (sur Macintosh).

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.