|
▼℃素人 さん:
こんばんは。
意味がよく分からないのですが、こんな感じでしょうか?
前提 A〜C列までのデータとする。
same differentは、入力済みとする。
並べ替えは、行われていないとする。
データ数は、A列で見ています。 以上
test1 で、一つ下
test2 で、一つおき となっているはずです。
Sub 並べ替え()
Range("A1").CurrentRegion.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal
End Sub
Sub test1() 'すぐ下と比べて
Dim i As Integer
Dim myRow As Long
Call 並べ替え
myRow = Range("A65536").End(xlUp).Row
Range("D2:E" & myRow).ClearContents
For i = 2 To myRow - 1
With Cells(i, "C")
If .Value = .Offset(1, 0).Value Then
.Offset(0, 1).Value = .Offset(0, -1).Value
Else
.Offset(0, 2).Value = .Offset(0, -1).Value
End If
End With
Next
End Sub
Sub test2() '一つ飛びと比べて
Dim i As Integer
Dim myRow As Long
Call 並べ替え
myRow = Range("A65536").End(xlUp).Row
Range("D2:E" & myRow).ClearContents
For i = 2 To myRow - 2
With Cells(i, "C")
If .Value = .Offset(2, 0).Value Then
.Offset(0, 1).Value = .Offset(0, -1).Value
Else
.Offset(0, 2).Value = .Offset(0, -1).Value
End If
End With
Next
End Sub
|
|