回答編集履歴

2

エラーの修正

2017/02/07 00:24

投稿

seastar3
seastar3

スコア2285

test CHANGED
@@ -40,10 +40,6 @@
40
40
 
41
41
  .Sheet(別シート).Cells(j,3)= .Cells(i,3)
42
42
 
43
- i = i+1
44
-
45
- j = j+1
46
-
47
43
  ' 見張りフラグを書き換えて、旧データを保存しておく
48
44
 
49
45
  gflag = .Cells(i,1)
@@ -51,6 +47,14 @@
51
47
  hozoncell2 = .Cells(i,2)
52
48
 
53
49
  hozoncell3 = .Cells(i,3)
50
+
51
+ ' アクティブシートの行ポインタ i の移動
52
+
53
+ i = i+1
54
+
55
+ ' 別シートの行ポインタ j の移動
56
+
57
+ j = j+1
54
58
 
55
59
  Else
56
60
 
@@ -83,3 +87,5 @@
83
87
  Loop
84
88
 
85
89
  ```
90
+
91
+ 校正した際に19行目に入れていた i=i+1 が間違いと気づいたので、下側に移しました。

1

コード修正

2017/02/07 00:24

投稿

seastar3
seastar3

スコア2285

test CHANGED
@@ -1,6 +1,6 @@
1
1
  整列済みの連続番号セルをもとにした定番のグループトータルアルゴリズムを使えばできます。
2
2
 
3
- 同一番号かを見張る変数gflagと欠番を埋めるためのhozoncell変数を用意し、番号がfflagと違ったときに新しい値をうつすか、欠番を埋めるかの処理を行います。そして、番号が一致しているときは、単純に次のセルにうつるように変数iに1を足します。
3
+ 同一番号かを見張る変数gflagと欠番を埋めるためのhozoncell変数を用意し、番号がgflagと違ったときに新しい値をうつすか、欠番を埋めるかの処理を行います。そして、番号が一致しているときは、単純に次のセルにうつるように変数iに1を足します。
4
4
 
5
5
  未検証ですが、以下のようなコードの形になると思います。
6
6
 
@@ -24,7 +24,9 @@
24
24
 
25
25
 
26
26
 
27
+ i = 2
28
+
27
- For i=2 To .Cells(Rows.Count,1).End(xlUp).Row
29
+ Do While i <= .Cells(Rows.Count,1).End(xlUp).Row
28
30
 
29
31
  If .Cells(i,1) > gflag Then
30
32
 
@@ -54,7 +56,7 @@
54
56
 
55
57
  ' 欠番があったときに旧データを転送していく
56
58
 
57
- While .Cells(i,1) < gflag + 1
59
+ Do While .Cells(i,1) < gflag + 1
58
60
 
59
61
  gflag = gflag + 1
60
62
 
@@ -66,7 +68,7 @@
66
68
 
67
69
  j = j+1
68
70
 
69
- Wend
71
+ Loop
70
72
 
71
73
  End If
72
74
 
@@ -78,6 +80,6 @@
78
80
 
79
81
  End If
80
82
 
81
- Next
83
+ Loop
82
84
 
83
85
  ```