| 
    
     |  | こんにちは。かみちゃん です。 
 >このようなワークシートに入力された数値があったとします。
 >それぞれの車の個数と単価を合計していく為に、車ごとにデータ範囲を
 >取得して2号車はdataList1、4号車はdataList2・・・と取得したい思います。
 >
 >
 >forで下がって、号車が同じ所のセルの番号を用いて
 >set dataList1=Activesheet.cells(,)・・・
 >とすれば良いのかと思いますが、アイデアが浮かびません。。。
 
 号車順にソートされていることが前提となりますが、
 以下のようなコードが参考になりますでしょうか?
 
 Sub Test()
 Dim LastCell As Range
 Dim c As Range
 Dim vntArea() As Range
 Dim tmpKey As String
 Dim rngStart As Range
 Dim i As Integer
 
 Set LastCell = Cells(Cells.Rows.Count, 1).End(xlUp)
 Set rngStart = Nothing
 i = 0
 
 ReDim vntArea(Range("A2", LastCell).Count)
 
 For Each c In Range("A2", LastCell)
 If tmpKey <> c.Value Then
 If Not rngStart Is Nothing Then
 Set vntArea(i) = Range(rngStart, c.Offset(-1))
 i = i + 1
 End If
 Set rngStart = c
 tmpKey = c.Value
 End If
 If LastCell.Address = c.Address Then
 Set vntArea(i) = Range(rngStart, c)
 i = i + 1
 End If
 Next
 
 ReDim Preserve vntArea(i)
 For i = 0 To UBound(vntArea) - 1
 MsgBox "dataList" & i + 1 & "=" & vntArea(i).Address
 Next
 
 End Sub
 
 |  |