|
こんにちは。かみちゃん です。
>このようなワークシートに入力された数値があったとします。
>それぞれの車の個数と単価を合計していく為に、車ごとにデータ範囲を
>取得して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
|
|