¿Te refieres a esto?
La sintaxis de
ExpandRange [Rango], [Número de Col a la izquierda], [Número de filas on Top], [Número de Col a la derecha], [número de filas hacia abajo]
Sub Sample()
Debug.Print ExpandRange(Range("B5"), 1, 1, 1, 1) '<~~ $A$4:$C$6
Debug.Print ExpandRange(Range("A1"), 1, 1, 1, 1) '<~~ Error
Debug.Print ExpandRange(Range("XFD4"), 1, 1, 1, 1) '<~~ Error
Debug.Print ExpandRange(Range("XFD1048576"), 1, 1, 1, 1) '<~~ Error
Debug.Print ExpandRange(Range("E5"), 1, 1, 1, 1) '<~~ $D$4:$F$6
End Sub
Function ExpandRange(rng As Range, lft As Long, tp As Long, _
rt As Long, dwn As Long) As String
If rng.Column - lft < 1 Or _
rng.Row - tp < 1 Or _
rng.Column + rt > ActiveSheet.Columns.Count Or _
rng.Row + dwn > ActiveSheet.Rows.Count Then
ExpandRange = "Error"
Exit Function
End If
ExpandRange = Range(rng.Offset(-1 * tp, -1 * lft).Address & ":" & _
rng.Offset(dwn, rt).Address).Address
End Function
¿Qué quiere decir con extender. Si ya conoce su rango ex 'D16: F20', ¿por qué no usarlo directamente para seleccionarlo? –
Este es un ejemplo, supongo que si conozco un rango de la celda que puede estar en cualquier lugar de la hoja. Y quiero hacer una selección que incluya el área circundante de esta celda. Entonces quiero extender/expandir. – NCC
¿habrá una sola célula para comenzar? –