回答編集履歴

1

追記

2018/09/14 00:46

投稿

ttyp03
ttyp03

スコア16998

test CHANGED
@@ -1,8 +1,12 @@
1
- iのループの終わりが1つ余計。
1
+ 0. iのループの終わりが1つ余計。
2
2
 
3
- jのループが2から固定になっている。
3
+ 0. jのループが2から固定になっている。
4
4
 
5
+ 0. 削除したあとjのカウンタが進んでしまうので一行飛ばしてしまう。
6
+
7
+
8
+
5
- 上記2点が問題でしょうか。
9
+ 上記3点が問題でしょうか。
6
10
 
7
11
  ```VBA
8
12
 
@@ -14,25 +18,27 @@
14
18
 
15
19
  Dim j As Integer
16
20
 
17
-
21
+
18
22
 
19
23
  'For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
20
24
 
21
- For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row - 1
25
+ For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row - 1 '(1)
22
26
 
23
27
  'For j = 2 To Cells(Rows.Count, 1).End(xlUp).Row
24
28
 
25
- For j = i + 1 To Cells(Rows.Count, 1).End(xlUp).Row
29
+ For j = i + 1 To Cells(Rows.Count, 1).End(xlUp).Row '(2)
26
30
 
27
-
31
+
28
32
 
29
33
  If Cells(i, 4).Value = Cells(j, 4).Value Then
30
34
 
31
35
  Rows(j).Delete
32
36
 
37
+ j = j - 1 '(3)
38
+
33
39
  End If
34
40
 
35
-
41
+
36
42
 
37
43
  Next j
38
44