【VBA】下が空欄の場合、上の値をコピーするマクロ

こんな感じの表が時々ありますね。
 
多分、見やすく配慮してくれていんだと思うのですが、
 
数字を大きい順に並べ替えたりすると、
 
どの商品かわからなくなってしまいます。
 
手入力で、商品ごとのコピーすれば良いのですが、
 
何十、何百行になったりすると、
 
とても面倒ですね。
 
このような、面倒だけど規則性のある作業は、
 
マクロが対応してしまいましょう!
 
↓全部のセルに商品番号がコピーされたので、並び替えも自由にできます!
 
 

使い方

1

2

  • 対象のエクセル表を開いた状態でマクロを実行します。 F5 or ▶ボタンで実行

3

  • 実行すると、インプットボックスで、  どの列が対象か?とどの列で最終行を判断するかの入力が促されます。  入力してエンターすると、空白に各品番が入力されます。

処理の内容

  • 最初は変数の宣言ですね。

  • インプットボックスで、何列目が対象かを入力 入力の値を変数col に入れておきます。

  • インプットボックスで最終行を判断するための列を入力してもらいます。 これにより、何回ループさせるか決めます。

  • IF文 まずは、今いるセルの1個したを確認したいので、 i + 1 としています。最初はiは1です。 なので、i+1 は、2ですね。2行目が””の場合=2行目が空白の場合となります。 2行目が空白の場合、 Cells(i + 1, col).Value = Cells(i, col).Value で1行目の値を、2行目に代入しています。 左辺が2行目、右辺が1行目ですね。

  • 上記の処理をループさせています。

シバマメのラインスタンプ販売中です!

↓よろしければクリックお願いします🌼
ブログランキング・にほんブログ村へにほんブログ村






コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です