Compartir a través de


Variable de objeto o Con variable de bloque no establecida

Se hace referencia a una variable de objeto no válida. Este error puede producirse por varias razones:

  • Se declaró una variable sin especificar un tipo. Si una variable se declara sin especificar un tipo, el valor predeterminado es escribir Object.

    Por ejemplo, una variable declarada con Dim x sería de tipo Object; una variable declarada con Dim x As String sería de tipo String.

    Sugerencia

    La Option Strict instrucción no permite la escritura implícita que da como resultado un Object tipo. Si omite el tipo, se producirá un error en tiempo de compilación. Consulte Option Strict Statement.

  • Está intentando hacer referencia a un objeto que se ha establecido en Nothing.

  • Está intentando acceder a un elemento de una variable de matriz que no se ha declarado correctamente.

    Por ejemplo, una matriz declarada como products() As String desencadenará el error si intenta hacer referencia a un elemento de la matriz products(3) = "Widget". La matriz no tiene elementos y se trata como un objeto .

  • Está intentando acceder al código dentro de un With...End With bloque antes de que se haya inicializado el bloque. Para inicializar un With...End With bloque, ejecute el punto de entrada de la With instrucción.

Nota:

En versiones anteriores de Visual Basic o VBA, este error también se desencadenó asignando un valor a una variable sin usar la Set palabra clave (x = "name" en lugar de Set x = "name"). La Set palabra clave ya no es válida en Visual Basic .Net.

Para corregir este error

  1. On Establézcalo Option Strict en agregando el código siguiente al principio del archivo:

    Option Strict On
    

    Al ejecutar el proyecto, aparecerá un error del compilador en la lista de errores de cualquier variable que se especificó sin un tipo.

  2. Si no desea habilitar Option Strict, busque en el código las variables especificadas sin un tipo (Dim x en lugar de Dim x As String) y agregue el tipo previsto a la declaración.

  3. Asegúrese de que no hace referencia a una variable de objeto que se ha establecido en Nothing. Busque el código para la palabra clave Nothingy revise el código para que el objeto no esté establecido Nothing en hasta que haya hecho referencia a él.

  4. Asegúrese de que las variables de matriz estén dimensionadas antes de acceder a ellas. Puede asignar una dimensión al crear por primera vez la matriz (Dim x(5) As String en lugar de Dim x() As String), o usar la ReDim palabra clave para establecer las dimensiones de la matriz antes de acceder a ella por primera vez.

  5. Asegúrese de que With el bloque se inicializa ejecutando el punto de entrada de la With instrucción.

Consulte también