Compartir a través de


Variable de objeto o de bloque With 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 se establece en el tipo Object.

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

    Sugerencia

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

  • Intenta hacer referencia a un objeto que se estableció en Nothing.

  • Intenta acceder a un elemento de una variable de matriz que no se declaró 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.

  • Intenta acceder al código dentro de un bloque With...End With antes de que se inicialice el bloque. Para inicializar un bloque With...End With, ejecute el punto de entrada de la instrucción With.

Nota

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

Para corregir este error

  1. Para establecer Option Strict en On, agregue el código siguiente al inicio del archivo:

    Option Strict On
    

    Al ejecutar el proyecto, aparecerá un error del compilador en la Lista de errores de cualquier variable que se haya especificado sin un tipo.

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

  3. Asegúrese de que no hace referencia a una variable de objeto que se estableció en Nothing. Busque la palabra clave Nothing en el código y revíselo para asegurarse de el que objeto no se establezca en Nothing hasta que haga 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 cuando cree la matriz (Dim x(5) As String en lugar de Dim x() As String), o bien usar la palabra clave ReDim para establecer las dimensiones de la matriz antes de acceder a ella por primera vez.

  5. Para asegurarse de la inicialización del bloque With, ejecute el punto de entrada de la instrucción With.

Consulte también