Diferencia entre revisiones de «Seleccionar o referenciar celdas de Excel mediante VBA»

Contenido eliminado Contenido añadido
Página creada con «Referenciar o seleccioanar celdas cuando se programa macros con VBA, es indicarle a VBA sobre que celda, se debe buscar o realizar algún evento, es algo básico que debe s...»
Etiqueta: wikificar
 
Sin resumen de edición
Línea 1:
Referenciar o seleccioanar celdas cuando se programa macros con VBA, es indicarle a VBA sobre que celda, se debe buscar o realizar algún evento, es algo básico 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 [http://programarexcel.com programa Excel con VBA], 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 también bastante usado en macros de VBA; las referencias más 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 posición 2 sin importar el nombre Sheets(2).Select
'Hacer referencia a la hoja deque se encuentra en la pestañaposición anterior2 asin laimportar activael ActiveSheet.Previous.Selectnombre
Sheets(2).Select
'Hacer referencia a la hoja de la pestaña posterior a la activa ActiveSheet.Next.Select
 
'Hacer referencia a una celda de otro libro Application.Goto Workbooks("Libro1.xlsm").Sheets("Sheet1").Cells(7, 6)
'Hacer referencia a la hoja de la pestaña anterior a la activa
ActiveSheet.Previous.Select
 
'Hacer referencia a la hoja de la pestaña posterior a la activa
ActiveSheet.Next.Select
 
'Hacer referencia a una celda de otro libro
Application.Goto Workbooks("Libro1.xlsm").Sheets("Sheet1").Cells(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
sheetnom = ActiveSheet.Name sheetnom = ActiveSheet.Previous.Name
sheetnom = ActiveSheet.Next.Name
 
'Hacer referencia a una hoja guardando en una variable el número de hoja, actual, previa a la actual y siguiente Dim sheetnumb As Byte sheetnumb = ActiveSheet.Index sheetnumb = ActiveSheet.Previous.Index sheetnumb = ActiveSheet.Next.Index
'Hacer referencia a una hoja guardando en una variable el número de hoja, actual, previa a la actual y siguiente
'Selecciona la celda b8 de la hoja 1 Sheets("hoja1").Select Range("C8").Select
Dim sheetnumb As Byte
'Hacer referencia de otra forma a la misma celda c8 Cells(8, 3).Select
sheetnumb = ActiveSheet.Index
'También podemos hacer referencia a la celda C8 pero de la hoja 2 Sheets("hoja2").Select Cells(8, 3).Select
sheetnumb = ActiveSheet.Previous.Index
'Se puede seleccionar la celda c8 de la hoja activa mediante ActiveSheet.Cells(8, 3).Select
sheetnumb = ActiveSheet.Next.Index
'Selecciona el rango continuo c2 a d10 Range("C2:D10").Select
 
'Referencia de otra forma el rango c2:d10 Range(Cells(2, 3), Cells(10, 4)).Select
'Selecciona la celda b8 de la hoja 1
'Referenciar de otra forma el rango c2:c10 Range("C2", "D10").Select
'Seleccionar toda la columna B Sheets("hoja1").Select Range("A:AC8").Select
 
'Seleccionar todas las columnas desde la columna A hasta la columna C Range("A:C").Select
'Hacer referencia de otra forma a la misma celda c8
'Seleccionar toda la fila 4 Range("4:4").Select
Cells(8, 3).Select
'Seleccionar todas las filas desde la fila 1 hasta la fila 5 Range("1:5").Select
 
'Fijarse porque no funciona 'Selecciona el rango discontinuo c5 a g5; a6; f3 a h3 y c24 Range("C5:G5,A6,F3:H3,C24").Select
'También podemos hacer referencia a la celda C8 pero de la hoja 2
Sheets("hoja2").Select Cells(8, 3).Select
 
'Se puede seleccionar la celda c8 de la hoja activa mediante
ActiveSheet.Cells(8, 3).Select
 
'Selecciona el rango continuo c2 a d10
Range("C2:D10").Select
 
'Referencia de otra forma el rango c2:d10
Range(Cells(2, 3), Cells(10, 4)).Select
 
'Referenciar de otra forma el rango c2:c10
Range("C2", "D10").Select
 
'Seleccionar toda la columna B
Range("A:A").Select
 
'Seleccionar todas las columnas desde la columna A hasta la columna C
Range("A:C").Select
 
'Seleccionar toda la fila 4
Range("4:4").Select
 
'Seleccionar todas las filas desde la fila 1 hasta la fila 5
Range("1:5").Select
 
'Seleccionar la unión de dos o más rangos especificados, similar a seleccionar y tener apretado tecla ctrl Application.Union(Range("A2: C5"), Range("F6: H12")).Select
 
'Seleccionar dos más columnas de columnas no contiguas de longitud variable Set a = Range("A1", Range("A1").End(xlDown)) Set b = Range("E1", Range("E1").End(xlDown)) Union(a, b).Select
'Seleccionar dos más columnas de columnas no contiguas de longitud variable
'Seleccionar un rango mayor al anteriormente seleccionado, el rango se amplía a 10 filas, 4 columnas Range("D10").Select Selection.Resize(10, 4).Select
Set a = Range("A1", Range("A1").End(xlDown))
'Seleccionar un rango mayor al anteriormente seleccionado, estableciendo la cantidad de fila y columnas adicionales a seleccionar Range("C2:D10").Select Selection.Resize(Selection.Rows.Count + 5, Selection.Columns.Count + 4).Select
Set b = Range("E1", Range("E1").End(xlDown))
'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 'Otra forma de seleccionar Range("E2:" & Range("E2").End(xlDown).Address).Select
Union(a, b).Select
'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 'Otra forma de seleccionar Range("E2:" & Range("E2").End(xlToRight).Address).Select
 
'Seleccionar un rango mayor al anteriormente seleccionado, el rango se amplía a 10 filas, 4 columnas
Range("D10").Select
Selection.Resize(10, 4).Select
 
'Seleccionar un rango mayor al anteriormente seleccionado, estableciendo la cantidad de fila y columnas adicionales a seleccionar
Range("C2:D10").Select
Selection.Resize(Selection.Rows.Count + 5, Selection.Columns.Count + 4).Select
 
'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
 
'Otra forma de seleccionar
Range("E2:" & Range("E2").End(xlDown).Address).Select
 
'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 'Otra forma de seleccionar Range("E2:" &
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 Range("E2:" & Range("E2").End(xlToLeft).Address).Select
 
'Seleccionar desde la celda E2 hasta la primer celda con datos desde abajo, similar a ctrl + shift + flecha hacia arrib a Range("E2", Range("E1048576").End(xlUp)).Select 'Otra forma de seleccionar Range("E2:" & Range("E1048576").End(xlUp).Address).Select
'Seleccionar mediantedesde variablesla ycelda cellsE2 unhasta rangola primer celda con datos desde abajo, similar a ctrl + shift + flecha hacia laarrib derechaa SheetsRange("ApiladoVerticalE2").Range((Cells(filaAV, 1)), Range((Cells(filaAV, 1)), Cells(filaAV, 1)"E1048576").End(xlToRightxlUp)).Select
 
AVG Premium Security 2014'Seleccionar la última celda con datos hacia abajo, similar a ctrl + flecha hacia abajo Range("E2").End(xlDown).Select 'Seleccionar la última celda con datos hacia la derecha, similar a ctrl + flecha hacia la derecha Range("E2").End(xlToRight).Select
'Otra forma de seleccionar
Range("E2:" & Range("E1048576").End(xlUp).Address).Select
 
'Seleccionar mediante variables y cells un rango hacia la derecha
Sheets("ApiladoVertical").Range((Cells(filaAV, 1)), Range((Cells(filaAV, 1)), Cells(filaAV, 1)).End(xlToRight)).Select
 
'Seleccionar la última celda con datos hacia abajo, similar a ctrl + flecha hacia abajo
Range("E2").End(xlDown).Select
'Seleccionar la última celda con datos hacia la derecha, similar a ctrl + flecha hacia la derecha Range("E2").End(xlToRight).Select
 
'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 arrib a Range("E1048576").End(xlUp).Select
 
'Hacer referencia a la ultima celda sin datos ActiveSheet.Range("a1").End(xlDown).Offset(1, 0).Select
'Hacer referencia a la ultima columnacelda sin datos
ActiveSheet.Range("a1").End(xlDown).Offset(01, 10).Select
 
'Hacer referencia a la dirección de la última celda hacia abajo con datos Dim addr As String Range("E2").End(xlDown).Select 'dirección en forma absoluta (Ej: $E$50) addr = Selection.Cells(1, 1).Address 'dirección en forma relativa (Ej: B50) addr = Selection.Cells(1, 1).Address(False, False)
'Hacer referencia a la ultima columna sin datos
'Hacer referencia a la dirección de la última celda hacia la derecha con datos Dim addrc As String Range("E2").End(xlToRight).Select 'dirección en forma absoluta (Ej: $E$50) addrc = Selection.Cells(1, 1).Address 'dirección en forma relativa (Ej: B50) addrc = Selection.Cells(1, 1).Address(False, False)
ActiveSheet.Range("a1").End(xlDown).Offset(0, 1).Select
'Referenciar al numero de la ultima fila con datos continuos Dim uf As String Range("E2").End(xlDown).Select uf = ActiveCell.Row
 
'Referenciar al numero de la ultima columna con datos continuos Dim uc As String Range("E2").End(xlToRight).Select uc = ActiveCell.Column
'Hacer referencia a la ultimadirección filade conla datosúltima ufcelda =hacia Sheets("hoja2").Range("A"abajo &con Rows.Count).End(xlUp).Rowdatos
Dim addr As String
'Referenciar a la ultima fila con datos de la columna A de otra forma uf = Cells(1048576, 1).End(xlUp).Row
Range("E2").End(xlDown).Select
'Referenciar a la ultima columna con datos de la fila 1 de otra forma uc = Cells(1, 16384).End(xlToLeft).Column
 
'Selecciona y combina las celdas selecciondas Range("B1:E1").Select Selection.Merge
'dirección en forma absoluta (Ej: $E$50)
'Selecciona y descombina las celdas selecciondas Range("B1:E1").Select Selection.UnMerge
addr = Selection.Cells(1, 1).Address
'Selecciona un rango donde se encuentra la celda activa Range("B2").CurrentRegion.Select
 
'Otra forma de selecciona un rango donde se encuentra la celda activa ActiveSheet.Range("e2", ActiveSheet.Range("e2").End(xlDown).End(xlToRight)).Select
'dirección en forma relativa (Ej: B50)
'Otra forma de selecciona un rango donde se encuentra la celda activa ActiveSheet.Range("e2:" & ActiveSheet.Range("e2").End(xlDown).End(xlToRight).Address).Select
addr = Selection.Cells(1, 1).Address(False, False)
'Selecciona un rango donde se encuentra la celda activa,pero habiendo una fila sin datos en el rango lastCol = ActiveSheet.Range("E2").End(xlToRight).Column lastRow = ActiveSheet.Cells(E1048576, lastCol).End(xlUp).Row ActiveSheet.Range("E2", ActiveSheet.Cells(lastRow, lastCol)).Select
 
'Selecciona la última celda con datos independientemente si existen celdas vacias en medio, es decir 'selecciona la ultima celda del rango formado entre la ultima columna con datos y la ultima fila con datos ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Select
'Hacer referencia a la dirección de la última celda hacia la derecha con datos
'Selecciona la última celda con datos independientemente si existen celdas vacias en medio, es decir Dim addr1 As String ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Select Selection.End(xlToLeft).Select addr1 = Selection.Cells(1, 1).Address(False, False)
Dim addrc As String
'Hacer referencia a la ultima columna sin datos 'Selecciona la última sin datos independientemente si existen celdas vacias en medio, es decir ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Select Selection.End(xlToLeft).Offset(1, 0).Select
Range("E2").End(xlToRight).Select
Menú de navegación
 
Marcrodos0DiscusiónPreferenciasLista de seguimientoContribucionesCerrar sesiónArtículoDiscusiónLeerEditarEditar códigoVer historialDejar de vigilar
'dirección en forma absoluta (Ej: $E$50)
Buscar
addrc = Selection.Cells(1, 1).Address
Portada[http://programarexcel.com Programación de Macros en Excel]
 
'dirección en forma relativa (Ej: B50)
addrc = Selection.Cells(1, 1).Address(False, False)
 
'Referenciar al numero de la ultima fila con datos continuos
Dim uf As String
Range("E2").End(xlDown).Select
uf = ActiveCell.Row
 
'Referenciar al numero de la ultima columna con datos continuos
Dim uc As String Range("E2").End(xlToRight).Select
uc = ActiveCell.Column
 
'Hacer referencia a la ultima fila con datos
uf = Sheets("hoja2").Range("A" & Rows.Count).End(xlUp).Row
 
'Referenciar a la ultima fila con datos de la columna A de otra forma
uf = Cells(1048576, 1).End(xlUp).Row
 
'Referenciar a la ultima columna con datos de la fila 1 de otra forma
uc = Cells(1, 16384).End(xlToLeft).Column
 
'Selecciona y combina las celdas selecciondas
Range("B1:E1").Select Selection.Merge
 
'Selecciona y descombina las celdas selecciondas
Range("B1:E1").Select Selection.UnMerge
 
'Selecciona un rango donde se encuentra la celda activa
Range("B2").CurrentRegion.Select
 
'Otra forma de selecciona un rango donde se encuentra la celda activa
ActiveSheet.Range("e2", ActiveSheet.Range("e2").End(xlDown).End(xlToRight)).Select
 
'Otra forma de selecciona un rango donde se encuentra la celda activa
ActiveSheet.Range("e2:" & ActiveSheet.Range("e2").End(xlDown).End(xlToRight).Address).Select
 
'Selecciona un rango donde se encuentra la celda activa,pero habiendo una fila sin datos en el rango
lastCol = ActiveSheet.Range("E2").End(xlToRight).Column
lastRow = ActiveSheet.Cells(E1048576, lastCol).End(xlUp).Row
ActiveSheet.Range("E2", ActiveSheet.Cells(lastRow, lastCol)).Select
 
'Selecciona la última celda con datos independientemente si existen celdas vacias en medio, es decir
'selecciona la ultima celda del rango formado entre la ultima columna con datos y la ultima fila con datos ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Select
 
'Selecciona la última celda con datos independientemente si existen celdas vacias en medio, es decir
Dim addr1 As String
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Select Selection.End(xlToLeft).Select addr1 = Selection.Cells(1, 1).Address(False, False)
 
'Hacer referencia a la ultima columna sin datos
'Selecciona la última sin datos independientemente si existen celdas vacias en medio, es decir ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Select Selection.End(xlToLeft).Offset(1, 0).Select