
エクセルのマクロを教えてください。
指定列の空白にひとつ上の文字を入力し続けるマクロです。
A列指定
A2からスタートし、1000行くらいあるデータ
空白があった場合ひとつ上の文字を入力
空白は、2行連続・3行連続となることもあるが大抵は1行空白
この場合、空白セルの上で一番近いデータをコピーする
A列のデータは、文字・数字・日付と様々
1000行ある場合もあるが、それ以下の場合もあるので、10行空白が続いたらマクロが自動的に終了
エクセル2003使用
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
はじめまして
>空白があった場合ひとつ上の文字を入力
>空白は、2行連続・3行連続となることもあるが大抵は1行空白
>この場合、空白セルの上で一番近いデータをコピーする
>A列のデータは、文字・数字・日付と様々
A3から順にセルが空白でないかを調べていき、空白だったら上のセルをコピーすればOKです。…空白が何行か続いても空白行に上の行の値をコピーしてから次の行か空白がどうかチェックする様にすればOKです
サンプルプログラムは以下の通りです。
Sub sumple()
For i = 3 To 1000
If Cells(i, "A") = "" Then
Cells(i - 1, "A").Copy Cells(i, "A")
End If
Next i
End Sub
>1000行ある場合もあるが、それ以下の場合もあるので、10行空白が続いたらマクロが自動的に終了
上のサンプルプログラムでは1000行を終了としています。終了の条件が「10行空白」ではなく、値が入っている最後の行とするなら、
For i = 3 To 1000
を
For i = 3 To [A65536].End(xlUp).Row
に置き換えれば出来ます。
ただし、A65536のセルに値が入っていないことが条件です。
No.3
- 回答日時:
こんにちは。
>10行空白が続いたらマクロが自動的に終了
そういう注文は不必要な気もしますが、一応入れておきました。
ひとつずつセルに入れるのではなくて、以下のようにまとめてコピーします。
Sub TestMacro()
Dim a As Range
On Error GoTo ErrHandler
Application.ScreenUpdating = False
With Range("A2", Range("A1001").End(xlUp))
For Each a In .SpecialCells(xlCellTypeBlanks).Areas
If a.Rows.Count < 10 Then
a.Offset(-1).Cells(1).Copy a
Else
Exit Sub '10行の空白は、終了
End If
Next a
End With
Application.ScreenUpdating = True
ErrHandler: 'すでに入れられている場合は終了
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Excel(エクセル) Excelについて質問です(ver2019) 1 2023/06/30 21:20
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
- Excel(エクセル) エクセルの表でダブりを解消する方法を、教えてください。 5 2023/04/12 12:11
- Excel(エクセル) Excel 値を返す数式についてです 3 2022/11/21 20:08
- Excel(エクセル) エクセルの関数で質問です。 3 2023/02/24 14:07
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- Visual Basic(VBA) 先頭と末尾を指定して連続した数字を入力 1 2022/09/14 13:12
- Excel(エクセル) [オートフィルター]機能について 3 2023/02/04 14:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【画像あり】オートフィルター...
-
IF関数で空欄("")の時、Null...
-
Excel > ピボットテーブル「(空...
-
ピボットテーブルで空白セルの...
-
エクセル 連番が途切れていると...
-
エクセルでCSVを編集するとき、...
-
Excelで、入力文字の後に自動で...
-
エクセルで入力すると隣のセル...
-
「データ要素を線で結ぶ」がチ...
-
Excel:関数が入っているセルに...
-
【Excel】 Ctrl+方向キー で空...
-
vlookup にて、返す値が、空白...
-
数式による空白を無視して最終...
-
空白セルにハイフンを表示
-
エクセルで、「複数のセルの中...
-
エクセルで上の行の値を自動的...
-
形式貼り付けの「空白を無視す...
-
【Excel】 csvの作成時、空白セ...
-
空白セル内の数式を残したまま...
-
VBA スペースが入力されて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
IF関数で空欄("")の時、Null...
-
エクセルでCSVを編集するとき、...
-
空白セルに斜線(罫線)
-
Excel > ピボットテーブル「(空...
-
Excelで、入力文字の後に自動で...
-
エクセル 連番が途切れていると...
-
ピボットテーブルで空白セルの...
-
「データ要素を線で結ぶ」がチ...
-
Excel:関数が入っているセルに...
-
数式による空白を無視して最終...
-
空白セル内の数式を残したまま...
-
excel2010 空白セルにのみ貼り...
-
【Excel】 csvの作成時、空白セ...
-
エクセルで上の行の値を自動的...
-
エクセルのIF関数で、隣のセル...
-
エクセルで、「複数のセルの中...
-
形式貼り付けの「空白を無視す...
-
関数TRANSPOSEで空白セルを0に...
-
【Excel】 Ctrl+方向キー で空...
-
色つき行の一括削除は?
おすすめ情報