Dim vals As Variant, i As Integer, c As Integer, addr As String c = 8 vals = Split(Selection.Address, ",") For i = 0 To UBound(vals) With Range(vals(i)) vals(i) = Range(Cells(.Row, c), Cells(.Row + .Rows.Count - 1, c)).Address End With Next addr = Join(vals, ",") Debug.Print WorksheetFunction.Subtotal(9, Range(addr))