変な形式でDLされるCSVとかがあり、選択範囲に空白があれば、同じ範囲内にあるひとつ上のセルの値で埋めたい、ってことがありますよね(?)
ちょっと何言ってるか分からなくなりそうなので、つまり以下のようにしたいってことです。
コード
コピぺして実行できるはずです。
Sub BlanksValues()
Dim useRng As Range: Set useRng = Selection
Dim useRowStr As Long: useRowStr = useRng.Row
Dim useColStr As Long: useColStr = useRng.Column
Dim useRowEnd As Long: useRowEnd = useRng.Row + useRng.Rows.Count - 1 '選択範囲の最終行取得
Dim useColEnd As Long: useColEnd = useRng.Column + useRng.Columns.Count - 1 '列取得
Dim val As String: val = ""
Dim c As Long: For c = useColStr To useColEnd
Dim r As Long: For r = useRowStr To useRowEnd
If Cells(r, c).Value = "" Then
Cells(r, c).Value = val
Else
val = Cells(r, c).Value
End If
Next
val = "" '列が変わるところで初期化
Next
End Sub