- 締切済み
VBAでオートフィルター コピー、ペースト
VBA初心者です。 膨大なデータの計算に悩んでおります。 ご教授ください。 工場の各商品に使われている材料の使用量を各商品と個数を一括で入力し、計算させるエクセルシートを作成したいのですが、 1商品に使用されている材料は5~10種と不特定です。 シート1のA行に品番コード、B行に個数が入っており。(200列程度) シート2に各商品に使用されている材料のマスターがあります。 A行品番コード、B行材料名、C~Fが材料のサイズ指示。 シート1のA5(商品リストの先頭)をセレクトし商品コードをコピー→シート2の材料マスターに移りオートフィルターで商品に使われている材料を選択→該当した材料、サイズ(行A~H)をコピー※列数は商品によって異なるので該当した全てをコピー→シート1の空白(仮にE5とする)にペースト→シート1のA6をセレクトしそれをA行が空白になるまで繰り返す。 という感じで出来るのかと思うのですが、いかがでしょうか。何しろデータが膨大で計算させるにも時間がかかってしまいそうですが・・・ また別な方法で同様な処理ができれば、それも合わせてお願いします。 不備ご不明な点あれば教えてください。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- VBA のオートフィルタについて
ExcelVBA初心者でございます。 2点質問がございます。 (1)エクセルVBAのオートフィルタの機能を使い、"マスタ0701"シートの13行目が”ABC”の行を、"検索結果"というシートにコピーしたいです。 以下のマクロを実行しますと、まず"マスタ0701"のB1のセル(13行目はブランク)がコピーされ、その下に13行目が”ABC”に該当する行がコピーされます。 なぜ、B1セルまでコピーされるのかご教示頂けますと幸いです。 (2)また検索結果だけでなく、オートフィルタのタイトル行もコピーするようにするにはどうしたら良いでしょうか? よろしくお願いいたします。 Sub 絞り込み() With Worksheets("マスタ0701").Range("A1") .AutoFilter Field:=13, Criteria1:="ABC" .CurrentRegion.SpecialCells(xlVisible).Copy Worksheets("検索結果").Range("A1") .AutoFilter End With End Sub
- ベストアンサー
- Visual Basic
- 初心者です!Excelのオートフィルタでコピーペースト
ようやくエクセルを覚えてきたのに、色々な処理をまかされてもう混乱しています。 過去の質問を見ても、なかなかできません。。。 エクセルのSheet1とSheet2に同じ表があるのですが、 データが入力されている場所が違います。 たとえば、sheet1は 名前 情報1 情報2 1 a 100 500 2 c 3 a 200 600 4 c 5 a 500 500 sheet2は 名前 情報1 情報2 1 a 2 c 200 600 3 a 4 c 700 800 5 a sheet1のaのデータを、sheet2のcのデータを消さずに aのところに貼り付けたいのですが、うまくいきません。 500行近く、sheet1と2にはお互いのデータがあるので、 1行ずつのコピー&ペーストは膨大な時間がかかってしまいます。 どうか助けてください!
- ベストアンサー
- オフィス系ソフト
- オートフィルター VBAでの設定について
オートフィルターで0以外のものに絞って、 コピーしたいのですが、 値が0しかない場合にすべてのものをコピーするように なってしまうので、 コピーすることがないようにさせたいです。 例) Sub test() Sheets("Sheet1").Select Selection.AutoFilter ActiveSheet.Range("$A$2:$A$10").AutoFilter Field:=1, Criteria1:="<>0" Range("A2:A10").Select Range(Selection, Selection.End(xldown)).Select Selection.Copy End Sub このようなコードの場合にA2:A10の値が0しかなかった場合に コピーしている状態をなくしたいのですが、 どこのコードを変えたらいいでしょうか。 回答よろしくお願いいたします。
- 締切済み
- Excel(エクセル)
- オートフィルターで抽出してコピー&印刷するマクロ
いつもお世話になります。 エクセル2002です。 (1)オートフィルターでデータを抽出(部署ごと)する。(インプットボックスで) (2)抽出された行を1行ずつコピーし、【編集シート】のA1セルに貼り付け (3)【印刷シート】の印刷 (データが3行あれば3枚の印刷がしたいのです) 《データ》 A列 B列 1 (部署)(商品名) 2 01 商品1 3 01 商品2 4 02 商品1 5 02 商品3 ・・・・・・・・・・ ---------------- Sub Macro1() Dim 部署 部署 = InputBox("部署コードを入れてください") Selection.AutoFilter Field:=1, Criteria1:=部署 Range("A1").Select End Sub ------------------ ↑のマクロにどう追加すればよいのかわからないので、教えてください。 よろしくお願いします。
- 締切済み
- オフィス系ソフト
- エクセルVBAのオートフィルタについて
オートフィルタ後の範囲選択で教えてください。 1行目にタイトルがある表で Range("a1").AutoFilter Field:=2, Criteria1:="PC" Range("A1").CurrentRegion.Select と実行すると1行目のタイトル行を含めて商品がPCの行が セレクトされます。 オートフィルタを何度も実行した結果を別シートにまとめる為 2回目以降はタイトル行を含めずにセレクトしたいのですが やり方がわかりません。お知恵をお貸しください。
- ベストアンサー
- オフィス系ソフト
- 文字列を検索しその列をコピーする(VBA)
よろしくお願いします。 OS:WINDOWS 2000 PRO 環境:OFFICE 2003 エクセルのVBAについての質問です。 A列には数値コードが入っています。 そのコードは"1"と"2"に分類されてます。 マスターはSHEET1で、このマスターから コード1はSHEET2に、 コード2はSHEET3に 振り分けたいのですが、どうもうまくいきません・・・ A列にはコード"1" "2"以外に空白セルが存在します。 空白セルは無視したい。。。 それとこのデータはDBから抽出するのですが、 抽出したデータは規則性はありません。 抽出するごとに"1"と"2"と"空白"はランダムなので、 LOOP等のマクロを調べてやってみたのですが、出来なくて週末になってしまいました。 A列からコード1とコード2を検索して、 ヒットしたコードの行ごと各SHEETにコピーして、 なおかつ各シートA列の入力されていない一番下の セルにコピーしたいのですが、検索でヒットした 上から順番に。。。 これをLOOPと組合わせれば、各シートにコピーするのは 問題ないような気がします。。。 Sub AAA_BBB() .Copy Worksheets("Sheet2").Range("A65536").End(xlUp).Offset(1, 0) End With End Sub LOOP等で上記の条件を満たせる方法はないでしょうか。 ご教示を、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBAのオートフィルタのタイトル行
3行目をタイトル行として、3行目以降(で13列にABCという文字列が入っている行)をセレクトすることは可能でしょうか? 以下のようなコードを書くと、1行目にオートフィルタがかかり、1行目もセレクトされてしまいます(13列にABCという文字列が入っている行は正しく選択されています)。 なお、A列はブランク、B1、B2には検索とは無関係の文字列が入っております。 どうぞ宜しくお願いいたします。 Sub 絞り込み() With Worksheets("マスタ0701").Range("B3") .AutoFilter Field:=13, Criteria1:="ABC" .CurrentRegion.Select '.AutoFilter End With End Sub
- ベストアンサー
- Visual Basic
- オートフィルタで出てきたものを他シートへコピー
オートフィルタを使って出てきた内容を、他のシートにコピーさせたいのです。内容は、 でてきたシート1のC列の内容をコピーしたいです。 ↓ 2行目のC列の内容のみシート2のA1へコピー (1行目はタイトルがはいっているので・・) ↓ 3列目以降のC列の内容をシート3のA1、A2、A3・・・ という風にコピーさせたいのです。 でてくる内容は1行かもしれませんし、2行だけかもしれません。 なんとかこれをどういうプログラムで組めばいいのかわからないので教えてくださいm(_ _)m 本当に困っています。 実際作ってみたのですが、1行目はタイトルが入っているので ただ単に2行目のC列をシート2へコピー、3行目のC列をシート3へ コピーというのはできるのですが、やはりシート3には順々に行を足してコピーしなくてはいけないので、そこら辺がどうしてよいかまったくわからずです・・・;; どなたかこの内容のプログラムを教えていただけないでしょうか・・助けてくださいm(_ _)m
- ベストアンサー
- その他(プログラミング・開発)
- EXCEL VBA オートフィルタの値コピー
ほぼ初心者ですのでよろしくお願いします。 Sheet2にデータがありそのデータをオートフィルタで日付から抽出してSheet3にコピーして、その後Sheet1の表に該当項目をコピーする際についてですが、オートフィルタ後、1日当たり行は10~15行あります、そのうちG列にはデータが通常2つのセルに値があるだけでほかの行は空欄です。(日によってどの行になるかはわかりません)この2つのセルの値をそれぞれSheet1のM10とM11コピーしたいのです、 ちなみにセル番地は下記の方法で取得できましたが、値の取得ができません。 Range("D1").Value = Worksheets("sheet1").Range("A1").End(xlDown).Row Range("D2").Value = Worksheets("sheet1").Range("A65536").End(xlUp).Row Sub データコピー() Range("AB17") = Format(Sheet3.Range("A3").Value, "yy") Range("AE17") = Format(Sheet3.Range("A3").Value, "mm") Range("AH17") = Format(Sheet3.Range("A3").Value, "dd") Range("AK17") = Format(Sheet3.Range("A3").Value, "aaa") Range("D22") = Sheet4.Range("D3").Value Range("D25") = Sheet4.Range("E3").Value Range("H22") = Sheet4.Range("F3").Value Range("D22") = Sheet4.Range("G3").Value Range("L22") = Sheet4.Range("K3").Value Range("Q22") = Sheet4.Range("L3").Value Range("U22") = Sheet4.Range("M3").Value . . . End Sub
- ベストアンサー
- Visual Basic
- エクセルVBAですが教えてください。オートシェイプがコピーされません。
またまたお世話になります。「入力」シートから「コピー先」シート にコピーして貼付したいのですが、コードで記述してうまくいき ません。すごく簡単なことかと思いますが、まったく解決できず にいます。何か足りないのでしょうか?よろしくご指導ください。 Sheets("入力").Select Range("A1:V20").Copy Sheets("コピー先").Range("A22").PasteSpecial Paste:=xlAll Application.CutCopyMode = False
- ベストアンサー
- オフィス系ソフト
補足
ありがとうございます。 参考にさせていただきます。 VBA初心者なのでサイト確認させていただきましたが、いまいちどれを使えばよいか解決までは時間を要しそうです。 ^^;がんばります。