|
>yuki さん
G-Luckといいます。
せっかく書いたのでの載せさせてね。
標準モジュールにコピーして、DataTENKAIのところにカーソルを持っていって、F5を押してください。
条件
元データは、Sheet1のA2を最初のデータとして存在する。
データは、詰まって存在する。
Sheet2が存在し、何も入力されていない。
kazuさんと同じように、データはSheet2に出力する。
出力前に、Sheet2はオールクリアしているので、他のデータも削除されてしまいます。
不明な点がありましたら、お知らせください。
'以下コード
Option Explicit
Private Sub DataTENKAI()
'
Dim rg As Range
Dim rgIn As Range
Dim rgOut As Range
Dim buf(1 To 1, 1 To 3) As Variant
Dim i As Long
Dim j As Long
Dim n As Long
Dim Lm As Long
Dim Um As Long
n = DataCount
If n < 1 Then Exit Sub
ThisWorkbook.Worksheets("Sheet2").Cells.Clear
Set rg = ThisWorkbook.Worksheets("sheet2").Range("A1:C1")
rg.Cells(1) = "番号"
rg.Cells(2) = "千番台"
rg.Cells(3) = "機種"
Set rgIn = ThisWorkbook.Worksheets("Sheet1").Range("A2:D2")
Set rgOut = ThisWorkbook.Worksheets("Sheet2").Range("A2:C2")
For i = 1 To n
Lm = Int(rgIn.Cells(2) / 1000)
Um = Int(rgIn.Cells(3) / 1000)
For j = Lm To Um
buf(1, 1) = rgIn.Cells(1)
buf(1, 2) = j
buf(1, 3) = rgIn.Cells(4)
rgOut = buf
Set rgOut = rgOut.Offset(1, 0)
Next j
Set rgIn = rgIn.Offset(1, 0)
Next i
End Sub
Private Function DataCount() As Long
'元データー数
Dim n As Long
With ThisWorkbook.Worksheets("Sheet1")
If .Range("A2").Value = "" Then
n = 0
Else
n = .Range("A1").End(xlDown).Row - .Range("A1").Row
End If
End With
DataCount = n
End Function
|
|