Pasando por un rango de celdas no contiguas (Microsoft Excel)
Stephe necesita desarrollar una macro que realizará una operación basada en las celdas que seleccione un usuario antes de ejecutar la macro. Sabe cómo hacer esto si el usuario selecciona un rango de celdas, pero no sabe cómo recorrer las celdas en una selección si el usuario selecciona un rango de celdas no contiguas.
Cuando se trata de VBA, hay muy poca diferencia entre una selección contigua y una selección no contigua. Excel le permite acceder a cada uno de ellos por igual. Considere el siguiente fragmento de código:
Dim c As Range For Each c In Selection ' do something here MsgBox c.Address & vbTab & c.Value Next c
En este caso, las celdas en el rango seleccionado se recorren, una a la vez, usando el ciclo For … Next. Dentro del ciclo, la variable c representa una celda individual y se puede usar en referencias, como se muestra.
Si, por alguna razón, desea acceder a cada área contigua dentro de la selección, puede hacerlo dirigiéndose específicamente al grupo Áreas, como se muestra en este fragmento:
Dim a As Range Dim c As Range For Each a In Selection.Areas 'Now each a refers to a contiguous range 'Do something here with areas, if desired For Each c In a.Cells 'Now each c refers to a cell in the area 'Do something here MsgBox c.Address & vbTab & c.Value Next c Next a
También debe tener en cuenta que si el rango al que desea acceder (contiguo o no contiguo) ha sido nombrado en Excel, también puede acceder solo a las celdas en el rango nombrado. Simplemente reemplace la palabra «Selección» en cada uno de estos ejemplos con el nombre del rango, de esta manera:
Dim c As Range For Each c In Range("MyNamedRange") ' do something here MsgBox c.Address & vbTab & c.Value Next c
_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 (8701) 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-Stepping_Through_a_Non-Contiguous_Range_of_Cells [Pasando a través de un rango de celdas no contiguas]
.