回答編集履歴
1
追記
answer
CHANGED
@@ -1,21 +1,24 @@
|
|
1
|
-
iのループの終わりが1つ余計。
|
1
|
+
0. iのループの終わりが1つ余計。
|
2
|
-
jのループが2から固定になっている。
|
2
|
+
0. jのループが2から固定になっている。
|
3
|
+
0. 削除したあとjのカウンタが進んでしまうので一行飛ばしてしまう。
|
4
|
+
|
3
|
-
上記
|
5
|
+
上記3点が問題でしょうか。
|
4
6
|
```VBA
|
5
7
|
Sub serach_delete()
|
6
8
|
|
7
9
|
Dim i As Integer
|
8
10
|
Dim j As Integer
|
9
|
-
|
11
|
+
|
10
12
|
'For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
|
11
|
-
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row - 1
|
13
|
+
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row - 1 '(1)
|
12
14
|
'For j = 2 To Cells(Rows.Count, 1).End(xlUp).Row
|
13
|
-
For j = i + 1 To Cells(Rows.Count, 1).End(xlUp).Row
|
15
|
+
For j = i + 1 To Cells(Rows.Count, 1).End(xlUp).Row '(2)
|
14
|
-
|
16
|
+
|
15
17
|
If Cells(i, 4).Value = Cells(j, 4).Value Then
|
16
18
|
Rows(j).Delete
|
19
|
+
j = j - 1 '(3)
|
17
20
|
End If
|
18
|
-
|
21
|
+
|
19
22
|
Next j
|
20
23
|
Next i
|
21
24
|
|