• 締切済み

空欄を埋める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はどのように作ればよいのでしょうか?

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 たぶん、この手の質問は大量の書き込みが必要になることが多いので、それにあわせて作ってみました。少ない行では違いは分らないと思います。 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)
回答No.3

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)
回答No.2

こんな感じ?  # 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)
回答No.1

直上のセルをコピーする操作は、次のようになります。 どれかのセルを選択して編集>ジャンプで空白セルを選択します。 イコールと上矢印を入力し、ctrl+enterを行います。 この操作を記録すればマクロにできます(2・3行です)。

関連するQ&A