Uso este método en modo inmediato cuando no deseo agregar código a la hoja.
strX="": _
For Each cllX in Range(ActiveCell, Cells(Cells.SpecialCells(xlCellTypeLastCell).Row, ActiveCell.Column)): _
strX=strX & iif(cllX.text="","",iif(strX="","",",")& cllX.address): _
Next: _
Range(strX).Select
Pero si bien es intuitivo, solo funciona con hasta 35 a 50 celdas. Después de eso, la VBA devuelve un error 1004.
Run-time error '1004':
Application-defined or object-defined error
Es más robusto para utilizar la función Unión.
Set rngX=ActiveCell: _
For Each cllX in Range(ActiveCell, Cells(cells.SpecialCells(xlCellTypeLastCell).Row, ActiveCell.Column)): _
Set rngX=iif(cllX.text="", rngX, Union(rngX, cllX)): _
Next: _
rngX.Select
Es tan corto e intuitivo que simplemente lo tiro después de cada uso.
¿Está seguro de que "para cada uno de los bucles es más rápido que un enfoque For i = 1 tox"? Pensé lo contrario https://stackoverflow.com/questions/365615/in-net-which-loop-runs-faster-for-or-foreach – curious
'For Each' es más rápido para un rango,' For I' más rápido para el bucle a través de una matriz variante – brettdj
o ok. gracias por la aclaración – curious