Seleccionar un rango
En estos ejemplos se muestra cómo seleccionar el rango usado, que incluye celdas con formato que no contienen datos y cómo seleccionar un rango de datos, que incluye celdas que contienen datos reales.
Código de ejemplo provisto por: Tom Urtis, Atlas Programming Management
Selección del rango usado
En este ejemplo se muestra cómo seleccionar el rango usado en la hoja actual, que incluye celdas con formato que no contienen datos, mediante la propiedad UsedRange del objeto Worksheet y el método Select del objeto Range . A continuación, muestra la dirección al rango del usuario.
Sub SelectUsedRange()
ActiveSheet.UsedRange.Select
MsgBox "The used range address is " & ActiveSheet.UsedRange.Address(0, 0) & ".", 64, "Used range address:"
End Sub
Selección de un rango de datos a partir de la celda A1
En este ejemplo se muestra cómo seleccionar un rango de datos en la hoja actual, comenzando por la celda A1, y cómo mostrar la dirección del rango para el usuario. El intervalo de datos no incluye celdas con formato que no contengan datos. Para obtener el intervalo de datos, en este ejemplo se busca la última fila y la última columna que contienen datos reales mediante el método Find del objeto Range .
Sub SelectDataRange()
Dim LastRow As Long, LastColumn As Long
LastRow = Cells.Find(What:="*", After:=Range("A1"), SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
LastColumn = Cells.Find(What:="*", After:=Range("A1"), SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
Range("A1").Resize(LastRow, LastColumn).Select
MsgBox "The data range address is " & Selection.Address(0, 0) & ".", 64, "Data-containing range address:"
End Sub
Selección de un rango de datos de una ubicación inicial desconocida
En este ejemplo se muestra cómo seleccionar un intervalo de datos en la hoja actual cuando no conoce la ubicación inicial y mostrar la dirección del intervalo al usuario. El intervalo de datos no incluye celdas con formato que no contengan datos. Para obtener el intervalo de datos, en este ejemplo se busca la primera y última fila y columna que contienen datos reales mediante el método Find del objeto Range .
Sub UnknownRange()
If WorksheetFunction.CountA(Cells) = 0 Then
MsgBox "There is no range to be selected.", , "No cells contain any values."
Exit Sub
Else
Dim FirstRow&, FirstCol&, LastRow&, LastCol&
Dim myUsedRange As Range
FirstRow = Cells.Find(What:="*", SearchDirection:=xlNext, SearchOrder:=xlByRows).Row
On Error Resume Next
FirstCol = Cells.Find(What:="*", SearchDirection:=xlNext, SearchOrder:=xlByColumns).Column
If Err.Number <> 0 Then
Err.Clear
MsgBox _
"There are horizontally merged cells on the sheet" & vbCrLf & _
"that should be removed in order to locate the range.", 64, "Please unmerge all cells."
Exit Sub
End If
LastRow = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
LastCol = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column
Set myUsedRange = Range(Cells(FirstRow, FirstCol), Cells(LastRow, LastCol))
myUsedRange.Select
MsgBox "The data range on this worksheet is " & myUsedRange.Address(0, 0) & ".", 64, "Range address:"
End If
End Sub
Acerca del colaborador
Tom Urtis, MVP, es el fundador de Atlas Programming Management, una empresa de Silicon Valley que ofrece soluciones empresariales integrales de Microsoft Office y Excel. Tom tiene más de 25 años de experiencia en la administración de negocios y el desarrollo de aplicaciones de Microsoft Office. Es, además, coautor de "Holy Macro! 2500 ejemplos de VBA para Excel".
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de