Оформите данные как таблицу. Границы ведёт Excel, столбцы зовутся по имени, пустая таблица даёт DataBodyRange = Nothing — это штатная ситуация.
Работать с ListObject вместо UsedRange
UsedRange раздулся, макрос читает пустые тысячи строк.
Код
Sub SumSales()
Dim lo As ListObject
Dim col As Range
Set lo = ThisWorkbook.Worksheets("Данные").ListObjects("tblSales")
If lo.DataBodyRange Is Nothing Then Exit Sub
Set col = lo.ListColumns("Сумма").DataBodyRange
Debug.Print Application.WorksheetFunction.Sum(col)
End Sub
Связанные члены API
ListObject.DataBodyRange Worksheet.UsedRange ListObject.ListColumns