- 締切済み
空欄を埋めるVBA
Excelにて、以下のようなデータがあります。 A B C 1 X 1 2 2 2 3 3 3 4 4 Y 4 5 5 5 6 6 6 7 A2,A3にX(=A1)を、A5,A6にY(=A4)を入力するようなVBAはどのように作ればよいのでしょうか?
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 たぶん、この手の質問は大量の書き込みが必要になることが多いので、それにあわせて作ってみました。少ない行では違いは分らないと思います。 Sub BlankSelectCellsEntering() Dim r As Range Dim c As Range On Error Resume Next Application.ScreenUpdating = False Set r = Range("A1").CurrentRegion.Columns(1).SpecialCells(xlCellTypeBlanks) For Each c In r.Areas c.Value = "'=" & c.End(xlUp).Address(0, 0) c.Value = c.Value Next c Application.ScreenUpdating = True End Sub
- imogasi
- ベストアンサー率27% (4737/17069)
VBEの標準モジュールに Sub test01() d = Range("B65536").End(xlUp).Row For i = 1 To d If Cells(i, "A") = "" Then Cells(i, "A") = x Else x = Cells(i, "A") End If Next i End Sub A列最初行は空白でないものとする。 A列2,3行などはスペースでなく空白とする。 上記で困ること(ケース)があれば補足してください。
- papayuka
- ベストアンサー率45% (1388/3066)
こんな感じ? # B列を最終行の判定に使っています。 Sub Test() Dim r As Range, s1 For Each r In Range(Range("B1"), Range("B65536").End(xlUp)) If r.Offset(0, -1).Value <> "" Then s1 = "=" & r.Offset(0, -1).Address(0, 0) Else r.Offset(0, -1).Value = s1 End If Next r End Sub
- cockerel
- ベストアンサー率46% (253/548)
直上のセルをコピーする操作は、次のようになります。 どれかのセルを選択して編集>ジャンプで空白セルを選択します。 イコールと上矢印を入力し、ctrl+enterを行います。 この操作を記録すればマクロにできます(2・3行です)。