Iniciar sesión con Microsoft
Iniciar sesión o crear una cuenta
Hola:
Seleccione una cuenta diferente.
Tiene varias cuentas
Elija la cuenta con la que desea iniciar sesión.

Síntomas

Cuando usa la propiedad Location o Location.Address en los saltos de página verticales u horizontales de una macro de Microsoft Visual Basic para Aplicaciones, puede recibir el mensaje de error siguiente:

Error en tiempo de ejecución '9':
subíndice fuera del intervalo

Causa

Este problema puede producirse si se cumplen las condiciones siguientes:

  • La celda activa está por encima del salto de página horizontal o a la izquierda del salto de página vertical referidos por el índice HPageBreaks o VPageBreaks.

  • La ubicación del salto de página horizontal está fuera de la pantalla, a la derecha de la ventana visible o bajo la ventana visible del libro.

  • Use la macro de Visual Basic para Aplicaciones en Microsoft Excel de modo similar al código siguiente:

    Sub TestHorizontal()
    ActiveSheet.Range("CZ1000").Value = 1
    MsgBox ActiveSheet.HPageBreaks.Count
    MsgBox ActiveSheet.HPageBreaks(1).Location.Address
    MsgBox ActiveSheet.HPageBreaks(2).Location.Address
    End Sub

    Sub TestVertical()
    ActiveSheet.Range("CZ1000").Value = 1
    MsgBox ActiveSheet.VPageBreaks.Count
    MsgBox ActiveSheet.VPageBreaks(1).Location.Address
    MsgBox ActiveSheet.VPageBreaks(2).Location.Address
    MsgBox ActiveSheet.VPageBreaks(3).Location.Address
    End Sub

Solución

Microsoft proporciona ejemplos de programación solamente como ilustración, sin ninguna garantía ya sea expresa o implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. En este artículo se da por supuesto que ya conoce el lenguaje de programación que se muestra, así como las herramientas empleadas para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos adaptados a sus necesidades específicas.
Para prevenir este problema, agregue código para seleccionar la última celda usada en la hoja de cálculo antes de que el código use la propiedad Location de los saltos de página verticales u horizontales. Por ejemplo, use el código siguiente para seleccionar la celda final, use la propiedad Location y, a continuación, vuelva a seleccionar la celda activa original:

Sub CheckPageBreaks()
'Set object "currcell" equal to active cell.
Set currcell = ActiveCell

'Select the last cell on the worksheet that has data.
Range("IV65536").Select

'Include code with Location property here.
x = ActiveSheet.HPageBreaks(2).Location.Address
MsgBox x
'Example sets x equal to address of second horizontal page break.
'Then message box displays the address of the page break.

'Select original active cell.
currcell.Select
End Sub


Después de que se haya calculado la propiedad Location, puede seleccionar de nuevo la celda activo original. Si usa código para desplazarse entre la primera y la última celda, o selecciona la última celda y vuelve a seleccionar inmediatamente la celda de partida, el error puede seguirse produciendo. Para que el modo de evitar el problema sea efectivo, debe rehacerse la pantalla y ser calculada la propiedad Location. Si usa el código anterior con

Application.ScreenUpdating = False

Para impedir que se rehaga la pantalla, el problema se sigue produciendo.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a".

Más información

Si usa el método Count con las propiedades VPageBreaks o HPageBreaks, puede recibir un resultado de cero. Esto se produce bajo las condiciones enumeradas en la sección "Causa". Si el salto de página es visible, el método Count puede dar la respuesta correcta. El método Count para los saltos de página horizontal o vertical puede dar lugar al resultado esperado si un salto de página está cerca de la parte visible de la ventana del libro. La manera de evitar el problema antes explicada se puede usar para obtener la cuenta esperada.

Los saltos de página que están a la derecha o debajo de la ventana del libro pueden habilitar el método Count para que ese salto de página sea ubicado, en caso de que la distancia desde la ventana al salto de página sea menor que la mitad de la distancia entre dos saltos de página.

Referencias

Para obtener más información acerca de cómo capturar errores de una macro, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

213637 Cómo utilizar "On Error" para tratar errores en una macro

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a su experiencia?
Si presiona Enviar, sus comentarios se usarán para mejorar los productos y servicios de Microsoft. El administrador de TI podrá recopilar estos datos. Declaración de privacidad.

¡Gracias por sus comentarios!

×