• 締切済み

エクセル-マクロを使って 別ファイルからデータ抽出

教えてくださ~いm(__)m。 下の様な時はどのようにしたらいいですか? Aファイルの"sheet1"の"A1"と"A2"に対象のコードを入力。 Bファイルの"sheet1"に"B列"~"G列"まで、データ件数は20000件位の元データがあります。キーは"B列”になります。 その対象のデータをAファイルの"sheet2"の"B列"~"G列"までコピーする。 このような感じなのですが、どなたか教えていただけますか?。 よろしくお願いします。

みんなの回答

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.3

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)
回答No.2

>対象の日付で”20070601”と”20070630”など日付を色々変えて 20070601 ~ 20070630 30日分と言うことですか? >日付ごとに売上データなので複数存在しています 同じ日のデーターが複数有るという事でしょうか?

yuu1022
質問者

補足

度々ありがとうございます。 >20070601 ~ 20070630 30日分と言うことですか? from to ではなく、20070601と20070630の2日分です。 >同じ日のデーターが複数有るという事でしょうか? 同じ日付で複数存在します。 よろしくお願いします

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.1

>Aファイルの"sheet1"の"A1"と"A2"に対象のコードを なぜ、2つコードが有るのでしょうか? >キーは"B列”になります B列にコードが有るという事でしょうか? >その対象のデータをAファイルの"sheet2"の"B列"~"G列"までコピーする 2つ(2行)分...ですか?

yuu1022
質問者

補足

ASIMOV 様 ありがとうございます。 >なぜ、2つコードが有るのでしょうか? ↑は、対象の日付で”20070601”と”20070630”など日付を色々変えて 抽出したいので・・・。 >B列にコードが有るという事でしょうか? ↑に日付が入っています。(売上データ) >2つ(2行)分...ですか? 対象の日付のものを抽出したいので、日付ごとに売上データなので複数存在しています。 説明不足で申し訳ございません。 よろしくお願いします。

関連するQ&A