|
こんにちは。かみちゃん です。
>「RangeクラスのSelectメソッドが失敗しました。」
どこのコードで出ますか?
Sheet2がアクティブシートでない状態でご提示のマクロを実行するとそのエラーが出ます。
>上下のセルが異なる値になるとその先の処理をしてくれなくなります。
違う色の場合に 列番号の変数である i を加算していません。
> 何処を改善したらよいのでしょうか?
そもそも、上下が同じ値の場合は、セルの内容をクリアして、
異なる場合は、色を付けたいのではないでしょうか?
それであれば、セルやシートをSelect する必要はありませんし、
セルの内容をクリアするだけでいいのであれば、DeleteよりClearのほうがよいです。
以下がサンプルです。
Sub 重複セル削除2()
Dim i As Integer
i = 1
Do
With Worksheets("Sheet2")
If .Cells(1, i).Value = .Cells(2, i).Value Then
'上下が同じ値の場合
.Cells(2, i).Clear 'セルを消去
Else
'上下が異なる値の場合
.Cells(2, i).Interior.ColorIndex = 4 '違う場合色をつける
End If
End With
i = i + 1
Loop Until i = 180
End Sub
> VBAの勉強を始めた者なのですが、ネットや本等をみて色々勉強はしたつもり
「マクロの記録」で記録してみたり、ヘルプで調べたりするのもよいかもしれません。
|
|