• ベストアンサー

ExcelSheet1のデータから、指定したデータをSheet2に一括出力する。

 ExcelSheet1に約4000件(1行)のデータを入力しています。  そのデータから指定した100件のデータを、VBAで一括してSheet2に出力するマクロを教えてください。  Sheet1のA列には、主キーとして(0001~9999)の文字列をいれています。  

質問者が選んだベストアンサー

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.3

>Sheet1A列の主キー(4桁の文字列)を、Sheet2のA列に100件を入力し、マクロで抽出することができないでしょうか。 こんな感じでどうでしょうか? Match関数でデータ位置を取得しているので、シート1のデータが1行目から始まっていない場合は、tmp + offset として位置合わせが必要です。 -------------------------------------------------------------- Sub test() Dim i As Integer Dim tmp As Variant Dim sh1 As Worksheet, sh2 As Worksheet Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") On Error Resume Next For i = 1 To 100 'sh1.Range("A1:A400") ------ Sheet1A列の主キー 'sh2.Cells(i, 1) ----------- Sheet2のA列100件 tmp = Application.WorksheetFunction.Match(sh2.Cells(i, 1), sh1.Range("A1:A400"), 0) 'Match関数注意 tmp + offset If Err() = 0 Then sh1.Rows(tmp).Copy sh2.Rows(i) Else sh2.Cells(i, 2) = "Nothing !!" 'なし End If Next On Error GoTo 0 Set sh1 = Nothing Set sh2 = Nothing End Sub -------------------------------------------------------- MATCH関数 http://www.ecken.co.jp/func/func_match.htm http://www12.plala.or.jp/nombo/kansu/kansu34.html

その他の回答 (2)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

とりあえず、オートフィルターの結果をコピィして別のシートへ貼り付けては如何ですか? マクロの記録をスタート オートフィルターを実行して指定した100件を抽出 行方向にたっぷりと範囲を選択してコピィ 別シートに貼り付け 元シートに戻って、オートフィルターを解除 マクロの記録の終了 多少の手直しでご希望の動作になると思います。

miyagawahi
質問者

補足

 例えば、Sheet1A列の主キー(4桁の文字列)を、Sheet2のA列に100件を入力し、マクロで抽出することができないでしょうか。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

>指定した100件のデータ コピーは簡単ですが、条件が解らないと何もできません。

miyagawahi
質問者

補足

 例えば、Sheet1A列の主キー(4桁の文字列)を、Sheet2のA列に100件を入力し、マクロで抽出することができないでしょうか。

関連するQ&A