今回は自分で選択した範囲に空白行がある場合、空白行の上のセルの値を入れるコードです。
お客様が入力している出納帳で日付部分が同じ日の場合、空白にしている事が多々あるので、それを自動的に埋めるために作成したコードです。
- Sub Fill()
- Dim SetArea As Range, sel As Range
- On Error Resume Next
- Set SetArea = Application.InputBox("空白を埋める範囲を選択してください", _
- "範囲選択", Type:=8)
- If SetArea Is Nothing Then Exit Sub
- For Each sel In SetArea
- If IsEmpty(sel) Then sel.Value = sel.Offset(-1, 0)
- Next sel
- End Sub
3行目 On Error Resume Next エラーを無視するコード。
4行目でインプットボックスを表示して範囲を選択しているのですが、その時に何も選択しない時やキャンセルした場合にこの部分で処理が止まってしまうため、エラーを無視するというコードを入れています。
条件分岐させればこれを入れなくても済みますが、6行目でマクロ自体を閉じてしまうため、1行だけ書けば済むOn Errorを使ってます。
8~10行目 選択した範囲内をFor Eachで回して、空白だった場合には上のセルの値を設定してます。
数式をコピーしたい場合は.Valueを.FomulaR1C1に変更すればいける...はず!
では、また。
0 件のコメント:
コメントを投稿