- ベストアンサー
エクセルマクロが組めない。
マクロど初心者です。 エクセルで空白の欄には上の文字が入力されていく マクロをを組みたいのですが どなたか教えてください。お願いいたします。 例えば A B C 1 兵庫県 2 3 4 大阪府 5 6 京都府 7 8 9 広島県 とあった場合、(A2)(A3)には兵庫県・(A5)大阪府・(A7)(A8)には 京都府といったような感じです。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
B列にもデータがあるとして、最終行をB列で調べて処理してます。 B列以外の場合は"B65536"の箇所を変更してください。 Dim i As Long Dim strA As String With Worksheets("Sheet1") For i = 1 To .Range("B65536").End(xlUp).Row If .Cells(i, "A").Value = "" Then .Cells(i, "A").Value = strA Else strA = .Cells(i, "A").Value End If Next End With
その他の回答 (2)
- merlionXX
- ベストアンサー率48% (1930/4007)
A1が空白ではないものとして Sub TEST() Dim i As Long With ActiveSheet For i = 1 To .Cells(.Rows.Count, "A").End(xlUp).Row If .Cells(i, "A") = "" Then .Cells(i, "A") = .Cells(i, "A").Offset(-1) End If Next End With End Sub
- test_
- ベストアンサー率28% (15/52)
確認をしていませんが、 以下のような2重ループでできると思います。 Whileあたりで間違っていると思いますが、 手直ししたら使えると思います。 また、いろいろな書き方がありますので、 どうぞ良いように使ってやってください・・・・。 For i = 1 To 300 If Len(Worksheets("Sheet1").Cells(i, 1)) = 0 Then j = 0 While (Len(Worksheets("Sheet1").Cells(i - j, 1)) <> 0) Worksheets("Sheet1").Cells(i, 1) = Worksheets("Sheet1").Cells(i - j, 1) j = j + 1 Wend End If Next i
お礼
返事遅くなりましてすいません。 教えて頂いたやり方で無事にできました(^◇^)。 ありがとうございます。 これから自分でも少しずつ勉強していきたいとおもいます。