teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2018/09/14 00:46

投稿

ttyp03
ttyp03

スコア17002

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
- 上記2点が問題でしょうか。
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