たとえば、次のような値があるとします。
A2=a, A5=b, A6=c, A10=d
基本的に、次のように以前の値を完全に削除したいと思います。
A2:A4=a,A5=b, A6:A9=c,A10:A99999=d
私はこれを試しました: 右側に新しい列を挿入し、次のようなことをしました:=IF(A2="",A1,A2)
しかし、これは B 列の最初の 2 つのインスタンスに対してのみ機能します。これは、ギャップがさらに多く、ギャップの数が常に同じではないためです。明らかに何かが欠けています。
ありがとう。
答え1
答え2
次の短いマクロを試してください:
Sub FillDown()
Dim rng As Range, r As Range
Set rng = Range("A2:A99999")
Application.ScreenUpdating = False
For Each r In rng
v = r.Value
If v = "" Then r.Value = r.Offset(-1, 0)
Next r
Application.ScreenUpdating = True
End Sub
マクロのインストールと使用は非常に簡単です。
- ALT-F11でVBEウィンドウが開きます
- ALT-I ALT-Mで新しいモジュールを開く
- 内容を貼り付けてVBEウィンドウを閉じます
ワークブックを保存すると、マクロも一緒に保存されます。2003 以降のバージョンの Excel を使用している場合は、ファイルを .xlsx ではなく .xlsm として保存する必要があります。
マクロを削除するには:
- 上記のようにVBEウィンドウを開きます
- コードを消去する
- VBEウィンドウを閉じる
Excel からマクロを使用するには:
- ALT+F8 キー
- マクロを選択
- タッチRUN
マクロ全般の詳細については、以下を参照してください。
http://www.mvps.org/dmcritchie/excel/getstarted.htm
そして
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
これを機能させるにはマクロを有効にする必要があります。