|
A B C
1 123 987 999
2 876
3 569
4
5
6 789
7
と仮にシートがあったとすると
A B C
1 123 987 999
2 123 876 999
3 569 876 999
4 569 876 999
5 569 876 999
6 789 876 999
7 789 876 999
というふうに数値が入ってるセルの下側が空白の場合のみ上の数値をコピーすると
いうマクロを作りたいです。
ここまでは本やネットで調べながらできましたが、
最終行+1行まで値がコピーされてしまいます。
最終行までにする場合はどうすればよいでしょうか?
Sub セルの自動入力()
'1. 開始行・列の取得
'2. 最終行・最終列の取得
'3. 開始列から最終列まで繰り返す
'4. 開始行+1行から最終行まで繰り返す
'5. セルの値が未入力のとき 1つ上のデータをセット
'6. 次のセルへ
Dim Row1 As Long, Row2 As Long
Dim Clm1 As Long, Clm2 As Long
Dim i As Long
Dim j As Long
With Selection
Row1 = .Row
Row2 = Row1 + .Rows.Count
Clm1 = .Column
Clm2 = Clm1 + .Columns.Count - 1
End With
For i = Clm1 To Clm2
For j = Row1 To Row2
If Cells(j, i).Value = "" Then _
Cells(j, i).Value = Cells(j - 1, i).Value
Next
Next
End Sub
|
|