David se pregunta si hay alguna forma de que las referencias de celda en una macro cambien al agregar o eliminar filas, de manera similar a la forma en que una fórmula responde a tales cambios.

Cuando hace referencia a una celda en una macro, como usar Range («B6»), VBA trata esa referencia como absoluta, lo que significa que no cambia.

Incluso si agrega o elimina celdas que afectan dónde se encuentra ahora la información que estaba en B6, la referencia de macro seguirá siendo la misma.

La forma de evitar esto es no usar referencias directas a celdas en sus macros. En su lugar, confíe en rangos con nombre. En Excel, defina un nombre para la celda B6 (como «MyData») y luego use ese nombre en la referencia en su macro, como en Range («MyData»). Este enfoque funciona porque VBA busca el nombre para determinar a qué celda se hace referencia, y Excel se asegura de que las referencias de rango con nombre permanezcan actualizadas a medida que agrega o elimina celdas.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (7250) se aplica a Microsoft Excel 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posterior) aquí:

link: / excelribbon-Changing_Macro_Cell_References_Based_on_Edits [Cambiar las referencias de macroceldas en función de las ediciones].