昨日に質問させて頂いたものですが、下記のマクロを教えて頂いたのですが
新しく生成された型番のワークシートが抜けていたり、最後まで型番が生成されない状態です。
なにか間違っていたら直して頂ける方お願いします。
Sub macro4()
Dim h As Range
Dim w As Worksheet
Dim i As Long, e As Long
Application.ScreenUpdating = False
Application.CutCopyMode = False
’準備
Set w = ActiveSheet
w.Range("4:4").Insert shift:=xlShiftDown
e = Range("B65536").End(xlUp).Offset(1).Row
Range("B4").Select
’複写
Do
ActiveSheet.Copy after:=ActiveSheet
Selection.EntireRow.Delete shift:=xlShiftUp
Loop Until ActiveCell.Offset(1) = ""
’片付け
For i = ActiveSheet.Index To w.Index + 1 Step -1
With Worksheets(i)
.Range(.Range("B4").Offset(1), .Cells(e, "B")).EntireRow.Delete shift:=xlShiftUp
End With
Next i
w.Rows(4).Delete
Application.ScreenUpdating = True
End Sub
http://oshiete.goo.ne.jp/qa/7081084.html
No.1ベストアンサー
- 回答日時:
あなたが用意したリストが,ご相談で掲示されているように作成できていないのが直接の原因です。
●同じ型番の製品が2行以上あるときに,型番のセルがセル結合できていない
●リストの途中に空白行が紛れている(少なくとも型番列の記入が抜けている)
などの状況が,真っ先に疑われます。データをキチンと直してから実行してください。
若しくは,実際のデータはご質問で掲示されたようには作成できないというのでしたら,マクロを例えば次のように直します。
変更前:
Loop Until ActiveCell.Offset(1) = ""
変更後:
loop until application.counta(activecell.offset(1).resize(e, 1)) = 0
ただしこういった「泥縄式」の対応は,また何か間違ったリストの作り方をされるたびにイチイチマクロを手直して行かなきゃならなくなる(いったいどんなデタラメが紛れてくるのか,事前に全てを予測して備えるのは無駄な作業です)ので,データ整備のほうをキチンと行うようにしてください。
#ご相談の出し直しは勿論全く問題ありません(他の方からもまた違ったアプローチ等が提案されるチャンスにもなります)が,その際は以前のご相談投稿は「解決」で閉じて,放置しないようにしてください。
この回答への補足
やはり型番が一部ぬけてワークシートが作成されてしまいます。
サンプルを作ったので、もしよろしければマクロをいれて稼動させてみてください。
http://www.dotup.org/uploda/www.dotup.org2160874 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCEL マクロで行を挿入して貼り付けようとするとエラーになる。 2 2022/05/24 09:43
- Visual Basic(VBA) Sheet1をフィルターで「りんご」を抽出し、Sheet2へ地域を貼り付ける下記マクロを変更して S 2 2022/12/11 03:01
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) ExcelVBAで、index、match関数を使用して、指定範囲に出力したい 3 2022/10/18 21:53
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excelでセル内の数式は残し値だ...
-
Excelで連続印刷をするマクロ
-
Excel(VBA)データ入力に応じて...
-
Excel にて非表示行を探すワー...
-
Excel2007で、太字にした行のみ...
-
エクセルで全ての数字間にカン...
-
100行のセルの高さを一括で調整...
-
EXCEL マクロで「キーワード入...
-
wordのvbaでハイパーリンク設定...
-
エクセル VBA 小数点を含む数字...
-
エクセルで、行ごとの並び替え...
-
Excel2007 セルを右方向に削除...
-
任意の1行を選択していないと...
-
「マクロ」の足し算の式を教え...
-
yyyy/mm/ddの日付に一括変換す...
-
エクセル2000でこんなマク...
-
値貼り付けをしても書式も貼り...
-
並べ替えのマクロで対象行の範...
-
マクロまたは他の方法でで自動転記
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excelでセル内の数式は残し値だ...
-
Excel2007で、太字にした行のみ...
-
Excelで連続印刷をするマクロ
-
「マクロ」の足し算の式を教え...
-
エクセル VBA 小数点を含む数字...
-
エクセルで全ての数字間にカン...
-
(Excel2003)すぐ左の最後の行...
-
Excel(VBA)データ入力に応じて...
-
Excel にて非表示行を探すワー...
-
エクセルで、行ごとの並び替え...
-
エクセル2003でマクロをおこな...
-
excel ある部分だけをコピペし...
-
行の入れ替えってどうするの?
-
Excelで周期的に列を削除する方法
-
整数行を残し小数点の行を削除...
-
EXCEL マクロで「キーワード入...
-
VBA コピーを有効行までループ...
-
Excel2007 セルを右方向に削除...
-
wordのvbaでハイパーリンク設定...
おすすめ情報