Macro rendimiento lento cuando los saltos de página están visibles en Excel

Seleccione idioma Seleccione idioma
Id. de artículo: 199505 - Ver los productos a los que se aplica este artículo
Para obtener una versión de Microsoft Excel 97 de este artículo, consulte 145598.
Expandir todo | Contraer todo

En esta página

Síntomas

Cuando utiliza un Microsoft Visual Basic para aplicaciones (VBA) macro en una versión posterior de Microsoft Excel, la macro tardará más tiempo en completarse que en versiones anteriores de Excel. Por ejemplo, una macro que requiere varios segundos en completarse en una versión anterior de Excel puede requerir varios minutos en completarse en una versión posterior de Excel.

Como alternativa, si ejecuta una macro una segunda vez, la macro puede tardar dos veces para ejecutar como lo hacía la primera vez.

Causa

Este problema puede producirse si se cumplen las condiciones siguientes:
  • La macro de VBA modifica las propiedades de muchas filas o columnas.
  • Ha realizado una operación que fuerza a Excel para calcular saltos de página. Excel calcula los saltos de página al realizar alguna de las siguientes operaciones:
    • Mostrar una vista preliminar de la hoja de cálculo.
    • Haga clic en Microsoft Office Excel 2003 y en versiones anteriores de Excel, en Configurar página en el menú archivo .

      En Microsoft Office Excel 2007, haga clic en Configurar página en la barra de herramientas acceso rápido.

      Nota Quizás tenga que agregar manualmente esta opción a la barra de herramientas.
    • Modificar cualquiera de las propiedades del objeto PageSetup en una macro de VBA.
  • En Excel 2003 y en versiones anteriores de Excel, activa la casilla de verificación saltos de página en la ficha Ver del cuadro de diálogo Opciones .

    En Excel 2007, haga clic en el Botón de Microsoft Office , haga clic en Opciones de Excel , haga clic en la categoría Avanzadas y, haga clic para seleccionar la casilla Mostrar saltos de página en la sección Mostrar opciones para esta hoja .
Este problema se produce si la macro establece cualquier propiedad PageSetup o si establece manualmente una propiedad PageSetup y, a continuación, ejecutar una macro VBA que establece propiedades en un intervalo grande de filas o columnas.

Cuando establece una propiedad PageSetup , cálculo automático de saltos de página se habilita en Excel. De forma predeterminada, no se establece esta propiedad.

Solución

Para evitar este problema, utilice cualquiera de los métodos siguientes.

Método 1: Deshabilitar manualmente la presentación de los saltos de página

Para hacerlo en Excel 2003 y en versiones anteriores de Excel, siga estos pasos:
  1. Haga clic en Opciones en el menú Herramientas .
  2. Haga clic en la ficha Ver . Bajo Opciones de ventana , haga clic para desactive la casilla de verificación saltos de página . Haga clic en Aceptar .
Para ello en Excel 2007, siga estos pasos:
  1. Haga clic en el Botón de Microsoft Office y, a continuación, haga clic en Opciones de Excel .
  2. Haga clic en la categoría Avanzadas y, a continuación, haga clic en para desactivar la casilla de verificación Mostrar los saltos de página en la sección Mostrar opciones para esta hoja de cálculo .

Método 2: Deshabilitar la presentación de los saltos de página mediante programación

Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. Este artículo se supone que está familiarizado con el lenguaje de programación que se muestra y con las herramientas que se utilizan 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 que cumplan sus requisitos específicos.

Para deshabilitar la presentación de los saltos de página mediante programación, agregue la línea de código siguiente a la macro VBA.
ActiveSheet.DisplayPageBreaks = False
				
importante que debe insertar esta línea de código después de modificar cualquiera de las propiedades del objeto PageSetup , pero antes de modificar las propiedades o las filas en la hoja de cálculo.

Propiedades

Id. de artículo: 199505 - Última revisión: martes, 23 de enero de 2007 - Versión: 5.1
La información de este artículo se refiere a:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
Palabras clave: 
kbmt kbdtacode kbprb kbprint KB199505 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 199505

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com