Partage via


Variable objet ou Avec variable de bloc non définie

Une variable objet non valide est référencée. Cette erreur peut se produire pour plusieurs raisons :

  • Une variable a été déclarée sans spécifier de type. Si une variable est déclarée sans spécifier de type, elle est par défaut de type Object.

    Par exemple, une variable déclarée avec Dim x serait de type Object; une variable déclarée avec Dim x As String serait de type String.

    Conseil / Astuce

    L’instruction Option Strict interdit la saisie implicite qui entraîne un Object type. Si vous omettez le type, une erreur au moment de la compilation se produit. Voir l’instruction Option Strict.

  • Vous tentez de référencer un objet défini sur Nothing.

  • Vous tentez d’accéder à un élément d’une variable de tableau qui n’a pas été correctement déclarée.

    Par exemple, un tableau déclaré comme products() As String déclenchera l’erreur si vous essayez de référencer un élément du tableau products(3) = "Widget". Le tableau n’a aucun élément et est traité comme un objet.

  • Vous tentez d’accéder au code dans un With...End With bloc avant l’initialisation du bloc. Un With...End With bloc doit être initialisé en exécutant le point d’entrée d’instruction With .

Remarque

Dans les versions antérieures de Visual Basic ou VBA, cette erreur a également été déclenchée en affectant une valeur à une variable sans utiliser le Set mot clé (x = "name" au lieu de Set x = "name"). Le Set mot clé n’est plus valide dans Visual Basic .Net.

Pour corriger cette erreur

  1. Définissez-le Option Strict en On ajoutant le code suivant au début du fichier :

    Option Strict On
    

    Lorsque vous exécutez le projet, une erreur du compilateur apparaît dans la liste d’erreurs pour toute variable spécifiée sans type.

  2. Si vous ne souhaitez pas activer Option Strict, recherchez votre code pour rechercher les variables spécifiées sans type (Dim x au lieu de Dim x As String) et ajoutez le type prévu à la déclaration.

  3. Vérifiez que vous ne faites pas référence à une variable d’objet définie Nothingsur . Recherchez votre code pour le mot clé Nothinget révisez votre code afin que l’objet ne soit défini Nothing sur qu’une fois que vous l’avez référencé.

  4. Assurez-vous que toutes les variables de tableau sont dimensionnés avant de les accéder. Vous pouvez affecter une dimension lorsque vous créez d’abord le tableau (Dim x(5) As Stringau lieu de ), ou utilisez le ReDim mot clé pour définir les dimensions du tableau avant de Dim x() As Stringl’accéder pour la première fois.

  5. Vérifiez que votre With bloc est initialisé en exécutant le point d’entrée d’instruction With .

Voir aussi