Sei sulla pagina 1di 3

1- Formas de seleccionar una celda o un rango de celdas:

Range("B7").Select 'selecciona la celda B7


Range("B:B").Select 'selecciona toda la columna B

Range("A4:A10, D10, B5:B20").Select
'selecciona rangos discontinuos

Range("A:A, D:F").Select 'selecciona las columnas A, D, E y F
Range("2:2, 4:7").Select 'selecciona las filas 2 y desde 4 hasta la 7

Seleccin de rangos con variables:

Range("A" & variable).Select

rgo="B2:E" & variable
Range(rgo).Select

rgo = "B" & ini & ":E" & fini
Range(rgo).Select

Nota: observar que las variables NO llevan comillas

Atencin: al inicio de la seccin Macros se encuentran otras instrucciones de seleccin



2- Seleccionar celdas a cierta distancia de la celda activa:

Sheets(1).Range("A1").Offset(2,3).Select
'selecciona 2 filas hacia abajo y 3 col a derecha de A1 = D3

ActiveCell.Offset(-10,1).Select
'selecciona la celda que se encuentra 10 filas por encima y 1 columna a la derecha de la celda activa.


3- Ampliar un rango seleccionado

Selection.Resize(10,4).Select ' (10 filas, 4 columnas)
' si el rango seleccionado fue A1:B5 ahora ser: A1:D10



4- Seleccionar el rango donde se encuenra la celda activa:

Range("B2").CurrentRegion.Select



5- Guardar la direccin de una celda en una variable:

lugar= ActiveCell.Address
'guarda la referencia absoluta, por ej: $E$2

lugar= ActiveCell.Address(False, False)
'guarda la referencia relativa, por ej: E2


6- Copiar un comentario en otra celda:

ActiveCell.Offset(0,1).Value = ActiveCell.Comment.Text
'copia el comentario de la celda activa en la celda que se encuentra en la columna siguiente.


7-Seleccionar celdas y borrarlas:

Range(rango). Select 'previamente se asign a la variable rango una ref
Selection.ClearContents 'borra contenidos

Selection.Clear 'borra todo (contenidos, formatos, etc)

Nota: La expresin Cells indica el total de celdas de una hoja. Entonces la instruccin:
Cells.Clearcontents borrar el contenido del total de celdas de la hoja activa.


8- Combinar - descombinar celdas selecccionadas:

Range("B1:E1").Select
Selection.Merge

Nota: Para quitar la combinacin se utilizar: Unmerge



9- Seleccionar hasta la ltima celda no vaca:

Range("A2", Range("A2").End(xlDown)).Select
'seleciona desde A2 hacia abajo

Range("A2", Range("A2").End(xlToRight)).Select
'selecciona desde A2 hacia la derecha

Range("D2", Range("D2").End(xlToLeft)).Select
'selecciona desde D2 hacia la izquierda

Range("A20", Range("A20").End(xlUp)).Select
'selecciona desde A20 hacia arriba



10- Obtener la primer celda vaca, en col A:

Range("A65536").End(xlup).Row + 1

'o tambin: Range("A2").End(xlDown).Row + 1

Nota: Considerar la versin Excel para tomar el rango final.
Ejemplo1: introducir un nombre para cada hoja del libro activo. Esta rutina se coloca en un mdulo:

Sub nombraHojas()
Dim MiNombre As String
Dim hoja As Worksheet
'controla posible error al ingresar un nombre de hoja no vlido
On Error Resume Next
For Each hoja In Worksheets
MiNombre = InputBox("Ingrese nombre para esta hoja: ")
If MiNombre <> "" Then hoja.Name = MiNombre
Next hoja
End Sub

Ejemplo2: introducir valores para cada celda de un rango (se coloca en un mdulo)

Sub colocaValores()
Dim celdita as Range
For Each celdita in ActiveSheet.Range("A1:B10")
celdita.Value = InputBox("Ingrese valor: ")
Next celdita
End Sub

Ejemplo3: introducir los mismos valores en celdas de todas las hojas (se coloca en un mdulo)

Sub valoresHoja()
Dim hoja as Sheets
For Each hoja in Sheets
hoja.Range("E3").Value = Date
hoja.Range("F3").Value = Time
Next hoja
End Sub


OTRO TIPO DE BUCLES:

Ejemplo1: realizar una accin por cada valor que tome una variable i (se coloca en un mdulo)

Sub muestraNombre()
Dim i as Byte
Dim hoja as Worksheet
'se controla posible error de que no existan tantas hojas
On Error Resume Next
For i=1 to 5
Msgbox WorkSheets(i).Name
Next
End Sub

En este ejemplo se muestra el nombre de cada hoja, desde la nro 1 a la 5


Ejemplo2: realizar una accin mientras se cumpla una condicin (se coloca en un mdulo)

Sub recorreRango()
'Se recorre la col A a partir de la fila 2 hasta encontrar una celda vaca.
'El valor de cada celda se incrementa en 1
Range("A2").Select
'se controla posible error de que la celda contenga texto
On Error resume next
While Activecell.Value <> ""
ActiveCell.Value = ActiveCell.Value + 1
'pasa a la fila siguiente
ActiveCell.Offset(1,0).Select
Wend
End Sub

Potrebbero piacerti anche