|
リス さん
おはようございます。
データを
|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だけが計算対象でよいですね?
|
|