|
▼さや さん:
こんばんは。
>
>まず、A列のセルA1:A60に、1から26までの数値がランダムに入ります。
>そして、そのA1:A60をB列のB1: B60にコピーします。
>コピーする条件は次の2点です。
>
>条件1. A1:A60には関数(VLOOKUP)が入っていますが、
> B列にコピーする際には、関数をなくし値のみとしたい。
>
>条件2. A列に同じ数値が続けて入力された場合は、
> 上部の数値はコピーせず、1番下のセルのみをコピーする。
>
条件1は、Valueプロパティを使えば値だけの移行ができます。
条件2は、セルA1〜A60の範囲で
AnとAn+1を比較し、等しくなければ、AnをBnに移行する。
というループ処理を行なうことで実現出来ます。
Sub test()
Dim idx As Long
With Range("a1:a60")
For idx = 1 To .Count - 1
If .Cells(idx).Value <> .Cells(idx + 1).Value Then
' セルAnとAn+1を比較し、等しくなければ、AnをBnに移行する。
.Cells(idx, 2).Value = .Cells(idx).Value
End If
Next
.Cells(.Count, 2).Value = .Cells(.Count).Value
' ↑最後のセルは無条件で移行する
End With
End Sub
検討してみて下さい
|
|