Use la macro OnEntry para crear un total en ejecución en un comentario de celda en Excel.
Artigo
Aplícase a:
Microsoft Excel
Resumen
En Microsoft Excel, puede evitar referencias circulares al crear un total en ejecución almacenando el resultado en una parte que no calcula de una hoja de cálculo. Este artículo contiene un procedimiento de ejemplo de Microsoft Visual Basic para Aplicaciones que lo hace almacenando un total en ejecución en un comentario de celda.
Más información
Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, 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. Se considera que está familiarizado con el lenguaje de programación que se muestra y con las herramientas 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 crear un total en ejecución en una celda
Abra un nuevo libro en Microsoft Excel.
Inicie la Editor de Visual Basic (presione ALT+F11).
En el menú Insertar, haga clic en Módulo.
Escriba las macros siguientes en este módulo:
VB
' The Auto_Open name forces this macro to run every time' the workbook containing this macro is opened.Sub Auto_Open()
' Every time a cell's value is changed,' the RunningTotal macro runs.
Application.OnEntry = "RunningTotal"EndSub'----------------------------------------------------------' This macro runs each time the value of a cell changes.' It adds the current value of the cell to the value of the' cell comment. Then it stores the new total in the cell comment.Sub RunningTotal()
OnErrorGoTo errorhandler ' Skip cells that have no comment.With Application.Caller
' Checks to see if the cell is a running total by' checking to see if the first 4 characters of the cell' comment are "RT= ". NOTE: there is a space after the equal' sign.If Left(.Comment.Text, 4) = "RT= "Then' Change the cell's value to the new value in the cell' plus the old total stored in the cell comment.
RT = .Value + Right(.Comment.Text, Len(.Comment.Text) - 4)
.Value = RT
' Store the new total in the cell note.
.Comment.TextText:="RT= " & RT
EndIfEndWithExitSub' Skip over the errorhandler routine.
errorhandler: ' End the procedure if no comment in the cell.ExitSubEndSub'--------------------------------------------------------------' This macro sets up a cell to be a running total cell.Sub SetComment()
With ActiveCell
' Set comment to indicate that a running total is present.' If the ActiveCell is empty, multiplying by 1 will' return a 0.
.AddComment
.Comment.TextText:="RT= " & (ActiveCell * 1)
EndWithEndSub
Después de escribir las macros, haga clic en Cerrar y volver a Microsoft Excel en el menú Archivo .
Guarde y cierre el libro y vuelva a abrirlo.
La macro Auto_Open que escribió se ejecuta al abrir el libro.
Seleccione la celda C3.
Esta es la celda que contendrá un comentario con el total en ejecución.
Siga estos pasos para ejecutar la macro SetComment:
En el menú Herramientas, seleccione Macro y a continuación haga clic en Macros.
En el cuadro de diálogo Macro, haga clic en SetCommenty, a continuación, haga clic en Ejecutar.
Ejemplo de uso del total en ejecución
Para usar el total en ejecución, siga estos pasos:
Escriba el número 10 en la celda C3.
Seleccione la celda C3 y observe que el comentario muestra "RT= 10" (sin comillas).
Escriba el número 7 en la celda C3.
Seleccione la celda C3 y observe que el comentario muestra "RT= 17" (sin comillas).
Para quitar el total en ejecución
Para quitar el total en ejecución, siga estos pasos:
Seleccione la celda que contiene el total en ejecución que desea quitar.
Haga clic con el botón derecho en la celda y haga clic en Eliminar comentario en el menú contextual.
Obtenga una certificación de Microsoft Office Specialist (MOS) para demostrar que tiene las habilidades necesarias para sacar el máximo partido de Excel 2016.