|
「5行以上同じ値が続いていたら、その行はすべて削除」という作業をVBAで挑戦したいのですが、「型が一致しません」というエラーが出てしまい、うまく動作しません。(下のプログラム文で11行目のところでエラーが出ます)
ローカルウィンドウで見る限りは、top、under、それぞれにちゃんと値は入っているように見えるのですが、エラーの原因はなんでしょうか。
不細工なプログラム文で恐縮ですが、ご教授お願い致します。
1 Sub test()
2 Dim top, under, n As Integer
3 n = 0
4 Const 列 = 1
5 Cells(Rows.Count, 列).End(xlUp).Select '1列目の入力セルの最下行を選択
6 under = ActiveCell.row 'underにアクティブセルの行番号を代入
7 For top = Cells(Rows.Count, 列).End(xlUp).row To 2 Step -1 '最下行から1行ずつ上昇
8 n = n + 1 'カウントをプラス1
9 If Cells(top, 列) <> Cells(top - 1, 列) Then '一つ上のセルと違う値のとき
10 If n >= 5 Then '同内容のセルが5行以上あったならば
11 Rows("top:under ").Delete shift:=xlUp 'topからunderまで行削除
12 n = 0 'カウントを0に戻す
13 under = top - 1 'underの行番号を次の値まで移動
14 Cells(under, 列).Select 'セルの位置も移動
15 Else '同内容のセルが5行未満だったら
16 n = 0
17 under = top - 1
18 Cells(under, 列).Select
19 End If
20 End If
21 Next top
22 End Sub
※変数について
┌ A…top
A
n A
A
A
└ A…under
B
B
B
|
|