- 締切済み
エクセル-マクロを使って 別ファイルからデータ抽出
教えてくださ~いm(__)m。 下の様な時はどのようにしたらいいですか? Aファイルの"sheet1"の"A1"と"A2"に対象のコードを入力。 Bファイルの"sheet1"に"B列"~"G列"まで、データ件数は20000件位の元データがあります。キーは"B列”になります。 その対象のデータをAファイルの"sheet2"の"B列"~"G列"までコピーする。 このような感じなのですが、どなたか教えていただけますか?。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- ASIMOV
- ベストアンサー率41% (982/2351)
Bファイルのファイル名は "B.xls" としています。違う場合は BF = "B.xls" を変えてください また、Bファイルの入っているフォルダーが違う場合は、フルパス(ドライブ名から)で指定してください ---------------------------- Sub SAMPL01() BF = "B.xls" l1 = 1 For i = 1 To 2 Sheet1.Activate xd = Cells(1, i) ' A1,A2のコード l2 = 1 Sheet2.Activate Do xl = ExecuteExcel4Macro("'[" & BF & "]Sheet1'!R" & l2 & "C2") If xl <> 0 Then '終わりの判定 If xl = xd Then Cells(l1, "B") = xl Cells(l1, "C") = ExecuteExcel4Macro("'[" & BF & "]Sheet1'!R" & l2 & "C3") Cells(l1, "D") = ExecuteExcel4Macro("'[" & BF & "]Sheet1'!R" & l2 & "C4") Cells(l1, "E") = ExecuteExcel4Macro("'[" & BF & "]Sheet1'!R" & l2 & "C5") Cells(l1, "F") = ExecuteExcel4Macro("'[" & BF & "]Sheet1'!R" & l2 & "C6") Cells(l1, "G") = ExecuteExcel4Macro("'[" & BF & "]Sheet1'!R" & l2 & "C7") l1 = l1 + 1 End If Else Exit Do End If l2 = l2 + 1 Loop Next End Sub
- ASIMOV
- ベストアンサー率41% (982/2351)
>対象の日付で”20070601”と”20070630”など日付を色々変えて 20070601 ~ 20070630 30日分と言うことですか? >日付ごとに売上データなので複数存在しています 同じ日のデーターが複数有るという事でしょうか?
- ASIMOV
- ベストアンサー率41% (982/2351)
>Aファイルの"sheet1"の"A1"と"A2"に対象のコードを なぜ、2つコードが有るのでしょうか? >キーは"B列”になります B列にコードが有るという事でしょうか? >その対象のデータをAファイルの"sheet2"の"B列"~"G列"までコピーする 2つ(2行)分...ですか?
補足
ASIMOV 様 ありがとうございます。 >なぜ、2つコードが有るのでしょうか? ↑は、対象の日付で”20070601”と”20070630”など日付を色々変えて 抽出したいので・・・。 >B列にコードが有るという事でしょうか? ↑に日付が入っています。(売上データ) >2つ(2行)分...ですか? 対象の日付のものを抽出したいので、日付ごとに売上データなので複数存在しています。 説明不足で申し訳ございません。 よろしくお願いします。
補足
度々ありがとうございます。 >20070601 ~ 20070630 30日分と言うことですか? from to ではなく、20070601と20070630の2日分です。 >同じ日のデーターが複数有るという事でしょうか? 同じ日付で複数存在します。 よろしくお願いします