es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error de falta de memoria al ejecutar el script de perforación más detallada.

El objetivo de la macro es evitar crear una nueva hoja de cálculo cada vez que un usuario hace doble clic o profundiza en un valor de tabla dinámica. En cambio, el script copia los datos a una hoja dedicada llamada “DrillDown”.

Después de varios clics, obtengo un error de Excel que indica que me he quedado sin memoria.

El conjunto de datos sin procesar no es muy grande. Me pregunto si hay algún problema con el script, o tal vez necesito agregar algo más. ¿Tal vez hay algunos datos temporales que necesito borrar primero?

Mi código:

Módulo1

Public CS$

Este libro:

Private Sub Workbook_NewSheet(ByVal Sh As Object)
If CS <> "" Then
    With Application
        ScreenUpdating = False
        Dim NR&
        With Sheets("DrillDown")

        'Establecer esto para comenzar siempre en la parte superior de la página
        NR = 1
        '.. y para borrar la pestaña Drilldown ..
        .Cells.ClearContents

        'en lugar de esto ..
        'If WorksheetFunction.CountA(.Rows(1)) = 0 Then
        '   NR = 1
        'Else
        '   NR = .Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 2
        'End If

        Range("A4").CurrentRegion.Copy .Cells(NR, 1)

    End With
    .DisplayAlerts = False
    ActiveSheet.Delete
    .DisplayAlerts = True
    'A continuación, se comentó para evitar que el usuario vuelva a la tabla dinámica
    ' Sheets(CS).Select
.ScreenUpdating = True
End With
End If
End Sub
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Puede haber un problema con el script que está causando problemas de memoria. Es posible que el código no esté eliminando los datos o objetos temporales, o que no esté liberando correctamente la memoria. Una solución podría ser agregar código para eliminar cualquier dato u objeto temporal utilizado en el código.

    Otra posibilidad es que el número de clics/taladros haya provocado que el libro se vuelva demasiado grande para la capacidad de memoria de su computadora. En este caso, puede ser necesario reducir el número de clics o eliminar datos innecesarios del libro.

    También vale la pena mencionar que el código incluye una sección comentada que impide que el usuario regrese al Panel. Habilitar esta sección podría reducir la frecuencia de los clics/taladros y potencialmente solucionar el problema de memoria.

Comments are closed.