Macros para asignar valores a una celda utilizando la propiedad Offset

Estructura de la propiedad offset
  • Range.Offset(DesplazamientoFila, DesplazamientoColumna)


Desplegando valores de una celda utilizando la propiedad Offset

Sub desplazamientos()
    MsgBox ActiveCell.Value
    MsgBox ActiveCell.Offset(1, 0).Value
    MsgBox ActiveCell.Offset(2, 0).Value   
End Sub


Utilizar la propiedad Offset para calcular un promedio de calificaciones

Tabla de trabajo:

Tabla de calificaciones



La siguiente macro calcula el promedio de calificaciones de la tabla de trabajo anterior:
  • Solicita la columna de trabajo de la tabla (primera columna) a través de Application.InputBox, tipo = 8
  • Recorre el rango dada de entrada y para cada fila calcula el promedio de las calificaciones para las tres columnas de trabajo
  • El promedio final lo coloca en la cuarta columna de la celda activa
Sub desplazamientos2()
Dim celda As Range
'Calcula promedio de calificaciones utilizando la propiedad offset
Dim columnaEntrada As Range
Dim promedio As Double
Dim suma As Double
Dim v1, v2, v3 As Double

    'Entrada primera columna de la tabla
    Set columnaEntrada = Application.InputBox("Columna de entrada", Type:=8)
    
    For Each celda In columnaEntrada
        v1 = celda.Offset(0, 1).Value
        v2 = celda.Offset(0, 2).Value
        v3 = celda.Offset(0, 3).Value
        suma = v1 + v2 + v3
        promedio = suma / 3
        celda.Offset(0, 4).Value = Format(promedio, "##.##")
    Next celda
End Sub

Ejecución de la macro:
Tabla de calificaciones 2

Tabla resultante después de ejecutar la macro anterior:

Tabla de calificaciones 3