- ベストアンサー
ExcelSheet1のデータから、指定したデータをSheet2に一括出力する。
ExcelSheet1に約4000件(1行)のデータを入力しています。 そのデータから指定した100件のデータを、VBAで一括してSheet2に出力するマクロを教えてください。 Sheet1のA列には、主キーとして(0001~9999)の文字列をいれています。
- みんなの回答 (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)
とりあえず、オートフィルターの結果をコピィして別のシートへ貼り付けては如何ですか? マクロの記録をスタート オートフィルターを実行して指定した100件を抽出 行方向にたっぷりと範囲を選択してコピィ 別シートに貼り付け 元シートに戻って、オートフィルターを解除 マクロの記録の終了 多少の手直しでご希望の動作になると思います。
- hana-hana3
- ベストアンサー率31% (4940/15541)
>指定した100件のデータ コピーは簡単ですが、条件が解らないと何もできません。
補足
例えば、Sheet1A列の主キー(4桁の文字列)を、Sheet2のA列に100件を入力し、マクロで抽出することができないでしょうか。
補足
例えば、Sheet1A列の主キー(4桁の文字列)を、Sheet2のA列に100件を入力し、マクロで抽出することができないでしょうか。