回答編集履歴

2

追加質問

2021/12/10 05:31

投稿

shimeji_XX
shimeji_XX

スコア42

test CHANGED
@@ -69,3 +69,91 @@
69
69
  自分が転記したくないデータも転記してしまうということでしたので
70
70
 
71
71
  一度転記の条件を見直してみればいいかもしれません。
72
+
73
+
74
+
75
+ ---
76
+
77
+ #追記。
78
+
79
+ この回答方法が正しいのか分かりませんでしたが、一応回答いたします。
80
+
81
+ ##### 追加質問
82
+
83
+ >>今回はws.2のA-P列を転記するというものでした。
84
+
85
+ >>これを,ws.2のA-Bと,R-X列を転記し,A,B,R,S...と詰めて表示する場合,
86
+
87
+ >>Rangeの部分に何か加えればいいのでしょうか。
88
+
89
+
90
+
91
+ ```VBA
92
+
93
+ '検索条件に該当する材質をシート「成分(2020年1月1日~)」に転記する
94
+
95
+ ws02.Range("A" & mRow & ":P" & mRow).Value = ws01.Range("A" & I & ":P" & I).Value
96
+
97
+ ```
98
+
99
+ この行の処理を見てください。こちらでデータをws01からws02にコピーしているのは分かりますか?
100
+
101
+
102
+
103
+ 全体の処理を見ると、変数Iにはws01の入力行(コピーする元の行)が入り、変数mRowにはws02の出力行(コピーする先の行)が入っています。
104
+
105
+ 例えば、mRowに "5" 、I には "15" が入っていたとします。
106
+
107
+ すると上の行は「ws01の"A15:P15"」を「ws02の"A5:P5"」にコピーする
108
+
109
+ ```VBA
110
+
111
+ '検索条件に該当する材質をシート「成分(2020年1月1日~)」に転記する
112
+
113
+ ws02.Range("A5:P5").Value = ws01.Range("A15:P15").Value
114
+
115
+ ```
116
+
117
+ という処理になります。
118
+
119
+
120
+
121
+ 新しく書きたい処理に置き換えた場合
122
+
123
+ 「ws01の"A15:B15"」を「ws02の"A5:B5"」にコピーする。
124
+
125
+ 「ws01の"R15:X15"」を「ws02の"C5:I5"」にコピーする。
126
+
127
+ という二つの処理で書くことができます。
128
+
129
+ ```VBA
130
+
131
+ '検索条件に該当する材質をシート「成分(2020年1月1日~)」に転記する
132
+
133
+ ws02.Range("A5:B5").Value = ws01.Range("A15:B15").Value
134
+
135
+ ws02.Range("C5:I5").Value = ws01.Range("R15:X15").Value
136
+
137
+ ```
138
+
139
+
140
+
141
+
142
+
143
+ 実際には条件に合わせて変数Iと変数mRowが変更されていくので、
144
+
145
+ ```VBA
146
+
147
+ '検索条件に該当する材質をシート「成分(2020年1月1日~)」に転記する
148
+
149
+ ws02.Range("A" & mRow & ":B" & mRow).Value = ws01.Range("A" & I & ":B" & I).Value
150
+
151
+ ws02.Range("C" & mRow & ":I" & mRow).Value = ws01.Range("R" & I & ":X" & I).Value
152
+
153
+ ```
154
+
155
+ といった形になります。
156
+
157
+ ここまで書いてあることが分からなかった場合には、最後のプログラムをコピーしてください。
158
+
159
+ 大変かとは思いますが、学習頑張ってください。

1

誤字の修正

2021/12/10 05:31

投稿

shimeji_XX
shimeji_XX

スコア42

test CHANGED
@@ -58,7 +58,7 @@
58
58
 
59
59
  ```VBA
60
60
 
61
- If ws01.Cells(I, "B") = kensaku & "*" Then
61
+ If ws01.Cells(I, "B") Like kensaku & "*" Then
62
62
 
63
63
  ```
64
64