>>633
unionでいいんなら

Sub test()
Dim rg1 As Range, c As Integer
c = 8
Set rg1 = Intersect(Union(Selection, Selection).EntireRow, Columns(c))
Debug.Print WorksheetFunction.Subtotal(9, rg1)
End Sub