質問編集履歴

3

修正

2020/01/27 06:21

投稿

kingkamehameha
kingkamehameha

スコア16

test CHANGED
File without changes
test CHANGED
@@ -182,7 +182,7 @@
182
182
 
183
183
  コード修正致しました。しかし、このコードでは10あるうち8行で止まってしまいます。
184
184
 
185
- 恐らくElseの分がFor rの方でカウントされてしまうからのようで、どのようにすれば総実行回数を割り出せるのでしょうか?
185
+ 恐らくElseの分がFor rの方でカウントされてしまうからのようで、どのようにすれば総実行回数を割り出せるのでしょうか?この時、取引先は全てで4つで実験しています。
186
186
 
187
187
 
188
188
 

2

コードの追加をしました。

2020/01/27 06:21

投稿

kingkamehameha
kingkamehameha

スコア16

test CHANGED
File without changes
test CHANGED
@@ -177,3 +177,49 @@
177
177
 
178
178
 
179
179
  ```
180
+
181
+
182
+
183
+ コード修正致しました。しかし、このコードでは10あるうち8行で止まってしまいます。
184
+
185
+ 恐らくElseの分がFor rの方でカウントされてしまうからのようで、どのようにすれば総実行回数を割り出せるのでしょうか?
186
+
187
+
188
+
189
+ ```VBA
190
+
191
+ For r = 2 To ws.Cells(Rows.Count, "A").End(xlUp).Row '取引先コードの分だけ処理する
192
+
193
+
194
+
195
+ '取引先CDが同じ場合
196
+
197
+ If ws.Cells(o, "A") = CD.Cells(j, "A") Then '1つ下の行と値が同じ場合
198
+
199
+ ws.Rows(o).Copy Sheets(wsname & wsnumber).Rows(k) '一致した場合コピー
200
+
201
+ o = o + 1 'コピー先がひとつ下がる
202
+
203
+ k = k + 1
204
+
205
+ Else
206
+
207
+ '取引先コードが変わった時
208
+
209
+ wsnumber = wsnumber + 1 'Sheetを1足して作成
210
+
211
+ Worksheets.Add(After:=Worksheets(Worksheets.Count)) _
212
+
213
+ .name = (wsname & wsnumber) 'Sheetの追加
214
+
215
+ Sheets("Sheet1").Rows(1).Copy 'ヘッダーをコピー
216
+
217
+ Sheets(wsname & wsnumber).Rows(1).PasteSpecial (xlPasteAll) 'ヘッダーを貼付
218
+
219
+ j = j + 1 '取引先コードの分だけループなので、ひとつ下がる
220
+
221
+ k = 2
222
+
223
+ End If
224
+
225
+ ```

1

シートの追加

2020/01/27 04:16

投稿

kingkamehameha
kingkamehameha

スコア16

test CHANGED
File without changes
test CHANGED
@@ -9,6 +9,28 @@
9
9
  現在のコードだと1回で、終了してしまいます。
10
10
 
11
11
  A列の取引先コードの数は決まっていません。取引先毎に出力するにはどうすればいいのでしょうか?
12
+
13
+
14
+
15
+ #### 現在のシート
16
+
17
+ |||
18
+
19
+ |取引先CD|請求先郵便番号|請求先住所1|
20
+
21
+ |:--|:--:|--:|
22
+
23
+ |20010|xxx-xxxx|xx県xx市|
24
+
25
+ |20010|xxx-xxxx|xx県xx市|
26
+
27
+ |20022|xxx-xxxx|xx県xx市|
28
+
29
+ |20022|xxx-xxxx|xx県xx市|
30
+
31
+ |20099|xxx-xxxx|xx県xx市|
32
+
33
+ ||||
12
34
 
13
35
 
14
36