Está en la página 1de 6

Seleccionar o referenciar celdas de Excel mediante VBA

De Wikilibros, la coleccin de libros de texto de contenido libre. Referenciar o seleccioanar celdas cuando se programa macros con VBA, es indicarle a VBA sobre que celda, se debe buscar o realizar algn evento, es algo bsico que debe saber si se intenta realizar una macro o bien modificar alguna macro que haya sido grabada con la grabadora de macros que trae incorporado Excel. Cuando se programa Excel con VBA (http://programarexcel.com), siempre es necesario seleccionar o referenciar a hojas, celdas, filas, columnas o rangos para realizar una macro de Excel o VBA, existen las distintas formas de seleccionar o hacer esas referencias, ya sea en forma directa o usando variables lo cual es tambin bastante usado en macros de VBA; las referencias ms comunes son las siguientes: 'Hacer referencia a todas las hojas del libro activo ActiveWorkbook.Sheets.Select 'Hacer referencia a la hoja2 Sheets("Hoja2").Select 'Hacer referencia a la hoja que se encuentra en la posicin 2 sin importar el nombre
S h e e t s ( 2 ) . S e l e c t

'Hacer referencia a la hoja de la pestaa anterior a la activa


A c t i v e S h e e t . P r e v i o u s . S e l e c t

'Hacer referencia a la hoja de la pestaa posterior a la activa


A c t i v e S h e e t . N e x t . S e l e c t

'Hacer referencia a una celda de otro libro


A p p l i c a t i o n . G o t oW o r k b o o k s ( " L i b r o 1 . x l s m " ) . S h e e t s ( " S h e e t 1 " ) . C e l l s ( 7 ,6 )

'Hacer referencia a una hoja guardando en una variable el nombre de la hoja activa, previa a la activa y posterior a la activa Dim sheetnom As String 'Se guarda el nombre de la hoja activa, previa a la activa y posterior a la activa
s h e e t n o m=A c t i v e S h e e t . N a m es h e e t n o m=A c t i v e S h e e t . P r e v i o u s . N a m e s h e e t n o m=A c t i v e S h e e t . N e x t . N a m e

'Hacer referencia a una hoja guardando en una variable el nmero de hoja, actual, previa a la actual y siguiente
D i ms h e e t n u m bA sB y t e

s h e e t n u m b=A c t i v e S h e e t . I n d e x s h e e t n u m b=A c t i v e S h e e t . P r e v i o u s . I n d e x s h e e t n u m b=A c t i v e S h e e t . N e x t . I n d e x

'Selecciona la celda b8 de la hoja 1


S h e e t s ( " h o j a 1 " ) . S e l e c tR a n g e ( " C 8 " ) . S e l e c t

'Hacer referencia de otra forma a la misma celda c8


C e l l s ( 8 ,3 ) . S e l e c t

'Tambin podemos hacer referencia a la celda C8 pero de la hoja 2


S h e e t s ( " h o j a 2 " ) . S e l e c tC e l l s ( 8 ,3 ) . S e l e c t

'Se puede seleccionar la celda c8 de la hoja activa mediante


A c t i v e S h e e t . C e l l s ( 8 ,3 ) . S e l e c t

'Selecciona el rango continuo c2 a d10


R a n g e ( " C 2 : D 1 0 " ) . S e l e c t

'Referencia de otra forma el rango c2:d10


R a n g e ( C e l l s ( 2 ,3 ) ,C e l l s ( 1 0 ,4 ) ) . S e l e c t

'Referenciar de otra forma el rango c2:c10


R a n g e ( " C 2 " ," D 1 0 " ) . S e l e c t

'Seleccionar toda la columna B


R a n g e ( " A : A " ) . S e l e c t

'Seleccionar todas las columnas desde la columna A hasta la columna C


R a n g e ( " A : C " ) . S e l e c t

'Seleccionar toda la fila 4

R a n g e ( " 4 : 4 " ) . S e l e c t

'Seleccionar todas las filas desde la fila 1 hasta la fila 5


R a n g e ( " 1 : 5 " ) . S e l e c t

'Seleccionar la unin de dos o ms rangos especificados, similar a seleccionar y tener apretado tecla ctrl
A p p l i c a t i o n . U n i o n ( R a n g e ( " A 2 :C 5 " ) ,R a n g e ( " F 6 :H 1 2 " ) ) . S e l e c t

'Seleccionar dos ms columnas de columnas no contiguas de longitud variable


S e ta=R a n g e ( " A 1 " ,R a n g e ( " A 1 " ) . E n d ( x l D o w n ) ) S e tb=R a n g e ( " E 1 " ,R a n g e ( " E 1 " ) . E n d ( x l D o w n ) ) U n i o n ( a ,b ) . S e l e c t

'Seleccionar un rango mayor al anteriormente seleccionado, el rango se ampla a 10 filas, 4 columnas


R a n g e ( " D 1 0 " ) . S e l e c t S e l e c t i o n . R e s i z e ( 1 0 ,4 ) . S e l e c t

'Seleccionar un rango mayor al anteriormente seleccionado, estableciendo la cantidad de fila y columnas adicionales a seleccionar
R a n g e ( " C 2 : D 1 0 " ) . S e l e c t S e l e c t i o n . R e s i z e ( S e l e c t i o n . R o w s . C o u n t+5 ,S e l e c t i o n . C o l u m n s . C o u n t+4 ) . S e l e c t

'Seleccionar desde la celda E2 hasta la ltima celda con datos hacia abajo, similar a ctrl + shift + flecha hacia abajo Range("E2", Range("E2").End(xlDown)).Select
' O t r af o r m ad es e l e c c i o n a r R a n g e ( " E 2 : "&R a n g e ( " E 2 " ) . E n d ( x l D o w n ) . A d d r e s s ) . S e l e c t

'Seleccionar desde la celda E2 hasta la ltima celda con datos hacia la derecha, similar a ctrl + shift + flecha hacia la derecha Range("E2", Range("E2").End(xlToRight)).Select
' O t r af o r m ad es e l e c c i o n a rR a n g e ( " E 2 : "&

Range("E2").End(xlToRight).Address).Select 'Seleccionar desde la celda E2 hasta la ltima celda con datos hacia la izquierda, similar a ctrl + shift + flecha hacia la izquierda Range("E2", Range("E2").End(xlToLeft)).Select 'Otra forma de seleccionar

R a n g e ( " E 2 : "&R a n g e ( " E 2 " ) . E n d ( x l T o L e f t ) . A d d r e s s ) . S e l e c t

'Seleccionar desde la celda E2 hasta la primer celda con datos desde abajo, similar a ctrl + shift + flecha hacia arriba Range("E2", Range("E1048576").End(xlUp)).Select 'Otra forma de seleccionar
R a n g e ( " E 2 : "&R a n g e ( " E 1 0 4 8 5 7 6 " ) . E n d ( x l U p ) . A d d r e s s ) . S e l e c t

'Seleccionar mediante variables y cells un rango hacia la derecha

S h e e t s ( " A p i l a d o V e r t i c a l " ) . R a n g e ( ( C e l l s ( f i l a A V ,1 ) ) ,R a n g e ( ( C e l l s ( f i l a A V ,1 ) ) ,C e l l s ( f i l a A V ,1 ) ) . E n d ( x l T o

'Seleccionar la ltima celda con datos hacia abajo, similar a ctrl + flecha hacia abajo

R a n g e ( " E 2 " ) . E n d ( x l D o w n ) . S e l e c t ' S e l e c c i o n a rl a l t i m ac e l d ac o nd a t o sh a c i al ad e r e c h a ,s i m i l a rac t r l+f l e c h ah a c i al ad e r e c h aR a n g e (

'Seleccionar la ltima celda con datos hacia la izquierda, similar a ctrl + flecha hacia la izquierda Range("E2").End(xlToLeft).Select 'Seleccionar desde la celda E1048576 la primer celda con datos hacia arriba, similar a ctrl + flecha hacia arriba Range("E1048576").End(xlUp).Select 'Hacer referencia a la ultima celda sin datos
A c t i v e S h e e t . R a n g e ( " a 1 " ) . E n d ( x l D o w n ) . O f f s e t ( 1 ,0 ) . S e l e c t

'Hacer referencia a la ultima columna sin datos


A c t i v e S h e e t . R a n g e ( " a 1 " ) . E n d ( x l D o w n ) . O f f s e t ( 0 ,1 ) . S e l e c t

'Hacer referencia a la direccin de la ltima celda hacia abajo con datos


D i ma d d rA sS t r i n g R a n g e ( " E 2 " ) . E n d ( x l D o w n ) . S e l e c t

' d i r e c c i ne nf o r m aa b s o l u t a( E j :$ E $ 5 0 ) a d d r=S e l e c t i o n . C e l l s ( 1 ,1 ) . A d d r e s s

' d i r e c c i ne nf o r m ar e l a t i v a( E j :B 5 0 ) a d d r=S e l e c t i o n . C e l l s ( 1 ,1 ) . A d d r e s s ( F a l s e ,F a l s e )

'Hacer referencia a la direccin de la ltima celda hacia la derecha con datos


D i ma d d r cA sS t r i n g R a n g e ( " E 2 " ) . E n d ( x l T o R i g h t ) . S e l e c t

' d i r e c c i ne nf o r m aa b s o l u t a( E j :$ E $ 5 0 ) a d d r c=S e l e c t i o n . C e l l s ( 1 ,1 ) . A d d r e s s

' d i r e c c i ne nf o r m ar e l a t i v a( E j :B 5 0 ) a d d r c=S e l e c t i o n . C e l l s ( 1 ,1 ) . A d d r e s s ( F a l s e ,F a l s e )

'Referenciar al numero de la ultima fila con datos continuos


D i mu fA sS t r i n g R a n g e ( " E 2 " ) . E n d ( x l D o w n ) . S e l e c t u f=A c t i v e C e l l . R o w

'Referenciar al numero de la ultima columna con datos continuos


D i mu cA sS t r i n gR a n g e ( " E 2 " ) . E n d ( x l T o R i g h t ) . S e l e c t u c=A c t i v e C e l l . C o l u m n

'Hacer referencia a la ultima fila con datos


u f=S h e e t s ( " h o j a 2 " ) . R a n g e ( " A "&R o w s . C o u n t ) . E n d ( x l U p ) . R o w

'Referenciar a la ultima fila con datos de la columna A de otra forma


u f=C e l l s ( 1 0 4 8 5 7 6 ,1 ) . E n d ( x l U p ) . R o w

'Referenciar a la ultima columna con datos de la fila 1 de otra forma


u c=C e l l s ( 1 ,1 6 3 8 4 ) . E n d ( x l T o L e f t ) . C o l u m n

'Selecciona y combina las celdas selecciondas


R a n g e ( " B 1 : E 1 " ) . S e l e c tS e l e c t i o n . M e r g e

'Selecciona y descombina las celdas selecciondas


R a n g e ( " B 1 : E 1 " ) . S e l e c tS e l e c t i o n . U n M e r g e

'Selecciona un rango donde se encuentra la celda activa

R a n g e ( " B 2 " ) . C u r r e n t R e g i o n . S e l e c t

'Otra forma de selecciona un rango donde se encuentra la celda activa


A c t i v e S h e e t . R a n g e ( " e 2 " ,A c t i v e S h e e t . R a n g e ( " e 2 " ) . E n d ( x l D o w n ) . E n d ( x l T o R i g h t ) ) . S e l e c t

'Otra forma de selecciona un rango donde se encuentra la celda activa


A c t i v e S h e e t . R a n g e ( " e 2 : "&A c t i v e S h e e t . R a n g e ( " e 2 " ) . E n d ( x l D o w n ) . E n d ( x l T o R i g h t ) . A d d r e s s ) . S e l e c t

'Selecciona un rango donde se encuentra la celda activa,pero habiendo una fila sin datos en el rango
l a s t C o l=A c t i v e S h e e t . R a n g e ( " E 2 " ) . E n d ( x l T o R i g h t ) . C o l u m n l a s t R o w=A c t i v e S h e e t . C e l l s ( E 1 0 4 8 5 7 6 ,l a s t C o l ) . E n d ( x l U p ) . R o w A c t i v e S h e e t . R a n g e ( " E 2 " ,A c t i v e S h e e t . C e l l s ( l a s t R o w ,l a s t C o l ) ) . S e l e c t

'Selecciona la ltima celda con datos independientemente si existen celdas vacias en medio, es decir

' s e l e c c i o n al au l t i m ac e l d ad e lr a n g of o r m a d oe n t r el au l t i m ac o l u m n ac o nd a t o syl au l t i m af i l ac o nd a t

'Selecciona la ltima celda con datos independientemente si existen celdas vacias en medio, es decir

D i ma d d r 1A sS t r i n g A c t i v e S h e e t . C e l l s . S p e c i a l C e l l s ( x l C e l l T y p e L a s t C e l l ) . S e l e c tS e l e c t i o n . E n d ( x l T o L e f t ) . S e l e c ta d d r 1=S e l e c t i

'Hacer referencia a la ultima columna sin datos

' S e l e c c i o n al a l t i m as i nd a t o si n d e p e n d i e n t e m e n t es ie x i s t e nc e l d a sv a c i a se nm e d i o ,e sd e c i rA c t i v e S h e

--Marcrodos (discusin) 04:40 7 nov 2013 (UTC) Microsoft VBA (http://msdn.microsoft.com/en-us/library/office/gg264383.aspx) Ejemplos de macros de Excel en VBA (http://programarexcel.com) Obtenido de http://es.wikibooks.org/w/index.php? title=Seleccionar_o_referenciar_celdas_de_Excel_mediante_VBA&oldid=213542 Esta pgina fue modificada por ltima vez el 7 nov 2013, a las 04:55. El texto est disponible bajo la Licencia Creative Commons Atribucin/Compartir-Igual 3.0; pueden aplicarse trminos adicionales. Vase Trminos de uso para ms detalles.

También podría gustarte