Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


40333 / 76732 ←次へ | 前へ→

【41498】Re:次々データ範囲を取得するには
回答  かみちゃん  - 06/8/12(土) 9:59 -

引用なし
パスワード
   こんにちは。かみちゃん です。

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

【41492】次々データ範囲を取得するには okuno 06/8/12(土) 4:26 質問
【41493】Re:次々データ範囲を取得するには SS 06/8/12(土) 7:31 発言
【41497】Re:次々データ範囲を取得するには okuno 06/8/12(土) 9:55 質問
【41499】Re:次々データ範囲を取得するには かみちゃん 06/8/12(土) 10:03 発言
【41498】Re:次々データ範囲を取得するには かみちゃん 06/8/12(土) 9:59 回答
【41533】Re:次々データ範囲を取得するには okuno 06/8/12(土) 22:26 お礼

40333 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free