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

質問編集履歴

3

修正

2020/01/27 06:21

投稿

kingkamehameha
kingkamehameha

スコア16

title CHANGED
File without changes
body CHANGED
@@ -90,7 +90,7 @@
90
90
  ```
91
91
 
92
92
  コード修正致しました。しかし、このコードでは10あるうち8行で止まってしまいます。
93
- 恐らくElseの分がFor rの方でカウントされてしまうからのようで、どのようにすれば総実行回数を割り出せるのでしょうか?
93
+ 恐らくElseの分がFor rの方でカウントされてしまうからのようで、どのようにすれば総実行回数を割り出せるのでしょうか?この時、取引先は全てで4つで実験しています。
94
94
 
95
95
  ```VBA
96
96
  For r = 2 To ws.Cells(Rows.Count, "A").End(xlUp).Row '取引先コードの分だけ処理する

2

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

2020/01/27 06:21

投稿

kingkamehameha
kingkamehameha

スコア16

title CHANGED
File without changes
body CHANGED
@@ -87,4 +87,27 @@
87
87
 
88
88
  End Sub
89
89
 
90
+ ```
91
+
92
+ コード修正致しました。しかし、このコードでは10あるうち8行で止まってしまいます。
93
+ 恐らくElseの分がFor rの方でカウントされてしまうからのようで、どのようにすれば総実行回数を割り出せるのでしょうか?
94
+
95
+ ```VBA
96
+ For r = 2 To ws.Cells(Rows.Count, "A").End(xlUp).Row '取引先コードの分だけ処理する
97
+
98
+ '取引先CDが同じ場合
99
+ If ws.Cells(o, "A") = CD.Cells(j, "A") Then '1つ下の行と値が同じ場合
100
+ ws.Rows(o).Copy Sheets(wsname & wsnumber).Rows(k) '一致した場合コピー
101
+ o = o + 1 'コピー先がひとつ下がる
102
+ k = k + 1
103
+ Else
104
+ '取引先コードが変わった時
105
+ wsnumber = wsnumber + 1 'Sheetを1足して作成
106
+ Worksheets.Add(After:=Worksheets(Worksheets.Count)) _
107
+ .name = (wsname & wsnumber) 'Sheetの追加
108
+ Sheets("Sheet1").Rows(1).Copy 'ヘッダーをコピー
109
+ Sheets(wsname & wsnumber).Rows(1).PasteSpecial (xlPasteAll) 'ヘッダーを貼付
110
+ j = j + 1 '取引先コードの分だけループなので、ひとつ下がる
111
+ k = 2
112
+ End If
90
113
  ```

1

シートの追加

2020/01/27 04:16

投稿

kingkamehameha
kingkamehameha

スコア16

title CHANGED
File without changes
body CHANGED
@@ -5,6 +5,17 @@
5
5
  現在のコードだと1回で、終了してしまいます。
6
6
  A列の取引先コードの数は決まっていません。取引先毎に出力するにはどうすればいいのでしょうか?
7
7
 
8
+ #### 現在のシート
9
+ |||
10
+ |取引先CD|請求先郵便番号|請求先住所1|
11
+ |:--|:--:|--:|
12
+ |20010|xxx-xxxx|xx県xx市|
13
+ |20010|xxx-xxxx|xx県xx市|
14
+ |20022|xxx-xxxx|xx県xx市|
15
+ |20022|xxx-xxxx|xx県xx市|
16
+ |20099|xxx-xxxx|xx県xx市|
17
+ ||||
18
+
8
19
  ```VBA
9
20
  Option Explicit
10
21