Arreglar error de subíndice fuera de rango en Visual Basic para aplicaciones (VBA)



Actualización 2024 abril: Deje de recibir mensajes de error y ralentice su sistema con nuestra herramienta de optimización. Consíguelo ahora en este enlace
  1. Descarga e instala la herramienta de reparación aquí.
  2. Deja que escanee tu computadora.
  3. La herramienta entonces repara tu computadora.

El error de subíndice de VBA fuera de rango se produce porque el objeto al que queremos acceder no existe. Este es un tipo de error en la codificación VBA y un "Error de tiempo de ejecución 9". Es importante comprender los conceptos para escribir código efectivo, y es aún más importante comprender el error de su código VBA para depurar el código de manera efectiva.

Si usted y su error de codificación no saben cuál es este error cuando está ausente.

Un médico no puede administrar medicamentos a su paciente sin conocer la enfermedad. Si bien el médico y el paciente saben que hay una enfermedad (error), es importante entender que la enfermedad (error) es administrarle medicamentos. Si comprende completamente el error, es mucho más fácil encontrar la solución.

Otra razón puede ser que no tiene una impresora estándar en su computadora. Hay varias soluciones para resolver esto. Error de tiempo de ejecución 9 problema, así que pruébelos todos en el orden correcto.

Agregar una impresora predeterminada

  1. Conecte una impresora a su computadora, conecte el cable de alimentación y enciéndala.
  2. Vaya a “Inicio”> “Panel de control”> “Impresoras y máquinas de fax”.
  3. Haga clic en "Agregar impresora" y siga las instrucciones en pantalla para agregar una impresora predeterminada.

Verifique las matrices

Es posible que haya establecido un valor incorrecto para el elemento de matriz. Por lo tanto, se recomienda volver a verificar el valor que ha definido para el elemento de matriz y asegurarse de que sea correcto. También asegúrese de verificar la declaración de la tabla y los límites superior e inferior. Si las tablas han cambiado de tamaño, asegúrese de utilizar las funciones LBound y UBound para condicionar el acceso. Verifique la ortografía del nombre de la variable si el índice es una variable.

Definir la cantidad de elementos

En algunos casos, es posible que no haya definido la cantidad de elementos en su código que activarán el error. Se recomienda especificar el número de elementos en la tabla utilizando las funciones Dim o ReDim.

Cómo evitar el error "Subíndice de error fuera de rango" en VBA

Evite usar las funciones integradas en Excel: ActiveWorkbook, ActiveSheet y Selection: ingrese los valores de retorno y prefiera expresiones calificadas.



Actualización de abril de 2024:

Ahora puede evitar problemas en la PC utilizando esta herramienta, como protegerse contra la pérdida de archivos y el malware. Además, es una excelente manera de optimizar su computadora para obtener el máximo rendimiento. El programa corrige los errores comunes que pueden ocurrir en los sistemas Windows con facilidad, sin necesidad de horas de resolución de problemas cuando tiene la solución perfecta a su alcance:

  • Paso 1: Descargar PC Repair & Optimizer Tool (Windows 10, 8, 7, XP, Vista - Microsoft Gold Certified).
  • Paso 2: Haga clic en “Iniciar escaneado”Para encontrar problemas de registro de Windows que podrían estar causando problemas en la PC.
  • Paso 3: Haga clic en “Repara todo”Para solucionar todos los problemas.

descargar



Use el integrado solo una vez y solo en las macros (subs) más externas y capture al iniciar la macro, por ejemplo

establecer wkb = ActiveWorkbook
establecer wks = ActiveSheet
Conjunto de sal = Selección
Durante y en las macros, estos nombres integrados no son confiables, pero se registran los valores de retorno, p. Ej.

Establezca wkb = Workbooks.add 'en lugar de Workbooks.add sin ingresar un valor de retorno.
wkb.Activate 'en lugar de Activeworkbook.Activate
También intente usar expresiones calificadas, por ejemplo

wkb.Sheets (“Sheet3”). name = “foo” 'en lugar de Sheets (“Sheet3”). name = “foo”.
or

Establecer newWks = wkb.Sheets.Add.
newWks.name = “bar” 'en lugar de ActiveSheet.name = “bar”.
Use expresiones calificadas, por ej.

newWks.name = “bar” 'en lugar de `xyz.Select' seguido de Selection.name =“ bar ”.
Estos métodos generalmente funcionan mejor, producen resultados menos confusos, son más robustos para la refactorización (por ejemplo, mover líneas de código dentro y entre métodos) y funcionan mejor en todas las versiones de Excel. Por ejemplo, la selección cambia de forma diferente de una versión de Excel a otra durante la ejecución de la macro.

También tenga en cuenta que probablemente encontrará que el uso de expresiones más calificadas no requiere que active casi tantas funciones. (Esto puede significar que la pantalla parpadea menos para el usuario). Entonces, la línea completa de Windows (expresión). Activar podría simplemente eliminarse en lugar de ser reemplazado por wkb. Activar en absoluto.

https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/subscript-out-of-range-error-9



Sugerencia del experto: Esta herramienta de reparación escanea los repositorios y reemplaza los archivos dañados o faltantes si ninguno de estos métodos ha funcionado. Funciona bien en la mayoría de los casos donde el problema se debe a la corrupción del sistema. Esta herramienta también optimizará su sistema para maximizar el rendimiento. Puede ser descargado por Al hacer clic aquí