- ベストアンサー
VBA データ左側から3文字で分類し新規シート転記
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
1行目はタイトル行,2行目から実データとして。 会員種別がB列に列記されているとして。 (といったような具体的なあなたのシートのレイアウトは,そもそもご相談であなたの方から提示してください) sub macro1() dim h as range dim w as worksheet dim s as string s = activesheet.name ’転記する on error goto errhandle for each h in range("B2:B" & range("B65536").end(xlup).row) h.entirerow.copy destination:=worksheets(left(h, 3)).range("A65536").end(xlup).offset(1) next on error goto 0 ’保存する for each w in worksheets if w.name <> s then w.copy activeworkbook.saveas filename:="c:\test\" & activesheet.name & "mm.xls" activeworkbook.close savechanges:=false end if next exit sub ’シートを新調する errhandle: worksheets.add after:=worksheets(worksheets.count) worksheets(s).range("1:1").copy destination:=activesheet.range("A1") activesheet.name = left(h, 3) resume end sub
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
>途中でエラーが出てしまい、新規ブックが開いた状態のまま何も表示されていませんでした。 当該のブックに,元データのシートでもなくABCシートでもない,空っぽの例えばSheet2などがある状態でマクロを実行しているのではないかと推測されます。 元データのシートが1枚あるだけの状態から,再度マクロを実行してください。 >終了ではなく、デバッグを選ぶと、下記の部分が黄色く選択されておりました。 これは説明不足だったかもしれません。失礼しました。 「どこに」保存したいのかなんの説明もありませんでしたので,マクロには仮にCドライブにtestというフォルダがあってその中に保存するように書いてあります。 testというフォルダの用意が無いと,エラーになります。 もしくは,あなたが実際に保存したい場所に保存するよう,マクロをご自分で修正していただかなければいけません。
お礼
シートの件も、保存先の件も全てクリアになりました。 いつも助けていただき、ありがとうございます。 今後は説明も工夫して投稿します。 本当にありがとうございました!!!
お礼
いつもお世話になってます。 説明不足の件、ご指摘ありがとうございました。以後、改めます。 さっそく、作成していただいたもので使用してみました。 新規シートのシート名が仕分けた頭3文字になっていました。 しかし、途中でエラーが出てしまい、新規ブックが開いた状態のまま何も表示されていませんでした。 終了ではなく、デバッグを選ぶと、下記の部分が黄色く選択されておりました。 >activeworkbook.saveas filename:="c:\test\" & activesheet.name & "mm.xls" どのように理解すればよいか、お知恵を貸してください。 よろしくお願いします。