- ベストアンサー
複数EXCELのセルデータを違うセルに移したい
- 複数のエクセルのファイルを1つのファイルの1枚のシートにする方法を教えてください。
- 現在、一枚のシートに日付ごとに項目が入っており、項目の前の列にそれぞれ日付をつける方法を教えてください。
- または、複数のEXCELファイルから1つのファイルの1枚のシートにする方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
元のCSVファイルの1つをふつーにエクセルで開いて見てみると、必ず ○C3セルに「日付」のデータが記入されている ○C4セルのデータは要らない ○C5セル以下の「不定数」のセルが必要 ということですね。 ついでに ○コピーしたいのはC3以下だけ。それ以外のA列やB列、D列以右は全く不要 という事で間違いないのですね。 それからご相談に書かれていませんが、エクセルに集約したあとは、C列のグループ先頭の日付のデータは通常は不要なので、 ●C5以下の必要なデータだけをC列にコピーする ●その隣のB列にC3の日付をずらり転記する 事にします。 オマケで、前回回答のマクロは各CSVの先頭行にタイトル行が記入してある前提で書いていましたので、それもやめにします。 sub macro2() dim myPath as string dim myFile as string worksheets.add before:=worksheets(1) ’さっき調べたパスを下記に記入する。最後の¥を消してしまわないよう注意する mypath = "c:\Users\<UserName>\Documents\元データ" & "\" myfile = dir(mypath & "*.csv") do until myfile = "" workbooks.open mypath & myfile with thisworkbook.worksheets(1) range("C5:C" & range("C65536").end(xlup).row).copy .range("C65536").end(xlup).offset(1) range("C3").copy .range(.range("B65536").end(xlup).offset(1), .range("C65536").end(xlup).offset(0, -1)) end with workbooks(myfile).close false myfile = dir() loop end sub
お礼
keithinさん>ありがとうございます。無事できるようになりました。今まで何日もかかっていた無駄な作業が一瞬で出来て本当にうれしく思います。本当に感謝です。ありがとうございます。
補足
keithinさん>こんな動物に何度も本当にありがとうございます。感謝の限りです。 申し訳ありません。また説明の仕方がへたくそでして間違えている部分がありました。 ○コピーしたいのはC3以下だけ。それ以外のA列やB列、D列以右は全く不要 のところですが列はCからM列まででした。説明不足で申し訳ありません。勉強になります。 ●C5以下の必要なデータだけをC列にコピーする ●その隣のB列にC3の日付をずらり転記する のところはkeithinさんが言われてる通りにしたいです。本当にありがとうございます。