Excel VBA Subscript fuera de rango

El subíndice de VBA está fuera de rango o se conoce principalmente como el error de tiempo de ejecución 9 cuando seleccionamos dicha celda u hoja o libro de trabajo que en realidad no está dentro del rango o criterio definido en Excel. Es como si hubiéramos seleccionado el rango de 100 celdas o una columna y hemos llamado los valores almacenados en 120 celdas de la misma columna. Lo que significa que estamos fuera de rango para seleccionar y llamar los valores que no están en nuestros criterios definidos. Cuando ocurre este tipo de situación, recibimos un mensaje de "Error de tiempo de ejecución 9" al compilar o ejecutar el código. El mensaje de error VBA Subscript out of Range nos guía a rectificar el error relacionado con el rango que hemos seleccionado en Excel.

Ejemplo de Excel VBA Subíndice fuera de rango

A continuación se muestran los diferentes ejemplos de VBA Subscript fuera de rango en Excel.

Puede descargar esta plantilla de VBA Subscript fuera de rango Excel aquí - Plantilla de VBA Subscript fuera de rango Excel

VBA Subíndice fuera de rango - Ejemplo # 1

Primero consideraremos un ejemplo simple. Para esto, debemos ir a las ventanas de VBA y agregar un nuevo módulo yendo a la opción Insertar menú como se muestra a continuación.

Obtendremos una ventana blanca en blanco del Módulo. Aquí es donde tenemos que hacer el trabajo de codificación.

Ahora escriba Subcategoría de la función realizada, para la mejor práctica, mantenga el nombre de una función en Subcategoría, como hicimos aquí para VBA Subscript fuera de rango.

Código:

 Sub Subscript_OutOfRange1 () End Sub 

Aquí en Excel, solo tenemos una hoja llamada "Hoja1" como se muestra a continuación.

Pero escribiremos un código para seleccionar una hoja que ni siquiera se agrega y veremos qué sucede.

Ahora vaya a la ventana de VBA y escriba Hojas (2) seguido de la función Seleccionar como se muestra a continuación. Lo que significa que estamos seleccionando la secuencia de Hoja de posición con la función Seleccionar.

Código:

 Sub Subscript_OutOfRange1 () Hojas (2). Seleccione End Sub 

Ahora compile el código completo o hágalo paso a paso para saber qué parte del código es un error. Como solo tenemos una línea de código, podemos ejecutar el código directamente haciendo clic en el botón de reproducción debajo de la barra de menú. Recibiremos un mensaje de error que dice " Error de tiempo de ejecución 9, subíndice fuera de rango " en el VBA como se muestra a continuación.

Esto muestra que estamos tratando de seleccionar esa hoja que no existe. Si agregamos una nueva hoja o cambiamos la secuencia de la hoja en el código del al 1º, entonces podemos obtener una ejecución exitosa del código. Agreguemos otra hoja y veamos qué sucede.

Ahora vuelve a ejecutar el código. Y como no vimos ningún error, lo que significa que nuestro código completa la ejecución exitosa.

VBA Subíndice fuera de rango - Ejemplo # 2

En otro ejemplo, veremos nuevamente un código simple para activar una Hoja de trabajo. Para esto nuevamente escribiremos el código. Comience a escribir la Subcategoría en el nombre de una función realizada o en cualquier otro nombre como se muestra a continuación.

Código:

 Sub Subscript_OutOfRange2 () End Sub 

Ahora con la ayuda de Worksheet, activaremos Sheet1 como se muestra a continuación.

Código:

 Sub Subscript_OutOfRange2 () Hojas de trabajo ("Sheet1"). Activar End Sub 

Ahora compile el código completo y ejecútelo. Notaremos que no se ha aparecido ningún mensaje de error, lo que significa que la ejecución del código fue exitosa. Ahora pongamos el espacio entre "Hoja 1"

Nuevamente compila y ejecuta el código.

Como podemos ver arriba, incluso si nuestro proceso completo y forma de escribir el código son correctos, pero hemos tomado el nombre correcto de la hoja como "Hoja 1". Que en realidad no tiene espacio entre "Hoja1".

Esto muestra que todavía hay posibilidades de obtener un error si no escribe o escribe el nombre correcto de la hoja o el nombre del libro.

VBA Subíndice fuera de rango - Ejemplo # 3

En este ejemplo, veremos cómo elegir un rango de matriz incorrecto puede crear y mostrar el error de tiempo de ejecución 9. Comience a escribir Subcategoría nuevamente en el nombre de la función realizada como se muestra a continuación.

Código:

 Sub Subscript_OutOfRange3 () End Sub 

Ahora, con la ayuda de DIM, defina una matriz de cualquier tamaño y se la da a String o Integers. Depende de lo que queramos almacenar en matriz, números o texto.

Aquí hemos considerado una matriz de 2 × 3 como String como se muestra a continuación.

Código:

 Sub Subscript_OutOfRange3 () Dim SubArray (2, 3) como String End Sub 

Con esto, formará una tabla para 2 filas y 3 columnas y podemos almacenar cualquier valor según nuestras necesidades. Como hemos seleccionado String, consideraremos texto o alfabetos en él.

Ahora en la segunda línea de código, seleccione la matriz creada pero con una columna adicional o más y asigne un texto como ABC o cualquier otro texto según su elección. Aquí, hemos seleccionado una matriz de 2 × 5 como se muestra a continuación.

Código:

 Sub Subscript_OutOfRange3 () Dim SubArray (2, 3) As String SubArray (2, 5) = ABC End Sub 

Ahora compila y ejecuta el código. Como podemos ver en la siguiente captura de pantalla, recibimos un mensaje de error de VBA Subscript fuera de rango del error de tiempo de ejecución 9.

La razón para obtener este error es porque hemos seleccionado un rango de matriz incorrecto dentro de 2 columnas adicionales de 2 × 3 a 2 × 5, que está más allá del límite del código. Ahora, si nuevamente seleccionamos el rango correcto de matriz como 2 × 3 y vemos qué sucede.

Después de compilar y ejecutar el código. Veremos que no recibimos ningún error, lo que significa que la ejecución de nuestro código fue exitosa.

Pros de Excel VBA Subscript fuera de rango

  • El subíndice de VBA fuera de rango nos permite saber qué tipo de error ha sucedido. Para que podamos encontrar específicamente la solución del código de error obtenido.
  • Como el subíndice de VBA está fuera de rango, el 'Error de tiempo de ejecución 9' es bastante útil para saber qué tipo de error ha ocurrido en Excel.

Cosas para recordar

  • Se recomienda usar Subcategoría en el nombre de la función realizada con una secuencia de código para que sea fácil rastrearla correctamente.
  • Guarde el archivo como libro de trabajo habilitado para macros para evitar perder el código escrito.
  • Si tiene grandes líneas de código, entonces es mejor compilar cada línea de código una por una presionando la tecla F8. Este método compila cada paso del código para que podamos saber directamente qué parte del código realmente tiene el error en el primer intento.

Artículos recomendados

Esta ha sido una guía para Excel VBA Subscript fuera de rango. Aquí discutimos por qué se produce el error VBA Subscript fuera de rango (Error de tiempo de ejecución 9) junto con algunos ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. Cómo solucionarlo: error VBA 1004?
  2. Comprender los errores en Excel
  3. Guía completa de VBA en caso de error
  4. Uso de la función IFERROR Excel

Categoría: