| 
    
     |  | リス さん おはようございます。
 
 
 データを
 
 |A| |B |
 1  項目1 項目2
 2  | 2||15 |
 3  | 5||10 |
 4  | 3||20 |
 5  | 1||" "| →ブランク
 6  | 2||" "| →ブランク
 7  | 4||10 |
 8  | 6||25 |
 
 というように1行目は、見出しにしておいた方が良いと思います。
 上記のようなデータだとして・・・、
 
 Sub test1()
 Dim ans As Double
 Dim rng As Range
 Dim crng As Range
 Dim target As Range
 On Error Resume Next
 ans = 0
 Set rng = Range("a1", Cells(Rows.Count, "a").End(xlUp)).Offset(0, 1).SpecialCells(xlCellTypeBlanks)
 If Err.Number = 0 Then
 Set target = Nothing
 For Each crng In rng.Areas
 If target Is Nothing Then
 Set target = crng.Offset(-1, -1).Resize(crng.Count + 1, 1)
 Else
 Set target = Union(target, crng.Offset(-1, -1).Resize(crng.Count + 1, 1))
 End If
 Next
 ans = Application.Sum(target)
 End If
 MsgBox ans
 Set rng = Nothing
 Set crng = Nothing
 Set target = Nothing
 On Error GoTo 0
 End Sub
 
 
 尚、2行目がもし
 
 |A| |B |
 1  項目1 項目2
 2  | 2||"" | ←ブランクの場合は
 
 すぐ左隣のセル 2だけが計算対象でよいですね?
 
 |  |