プロが教える店舗&オフィスのセキュリティ対策術

お世話になります。
下記のようなデータで、A列の文字データの
下には2行の空白セルがあります。

VBAで5行目、13行目のように1行しか文字
データの無い行だけをVBAマクロで下のセルに
転記したいのですが御指導願えないでしょうか。
よろしくお願いいたします


転記前
  A  B    C
1 山田 xxxxx  xxxx 
2 山田 xxxxx  xxxx   
3    
4    
5 鈴木 xxxxx  xxxx
6 

8 山川 xxxxx  xxxx
9 山川 xxxxx  xxxx
10 山川 xxxxx  xxxx 
11
12
13 下川 xxxxx  xxxx
14
15


下のように転記したい
  A  B    C
1 山田 xxxxx  xxxx 
2 山田 xxxxx  xxxx   
3    
4    
5 鈴木 xxxxx  xxxx
6 鈴木

8 山川 xxxxx  xxxx
9 山川 xxxxx  xxxx
10 山川 xxxxx  xxxx 
11
12
13 下川 xxxxx  xxxx
14 下川
15

質問者からの補足コメント

  • ①B列とC列両方ともデータは無いです。転記するのはA列だけです。
    ②2つを超えて連続で該当する行はそのままにしておきます。
    よろしくお願いいたします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/02/02 16:08

A 回答 (3件)

こんな感じでいかがでしょうか?


--------------------------------------------------------------------
Sub Sample()
Dim 行 As Long
For 行 = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(行, 1).Value <> "" Then
If Cells(行, 1).Value <> Cells(行 - 1, 1).Value Then
Cells(行 + 1, 1).Value = Cells(行, 1).Value
End If
End If
Next
If Range("A1").Value <> "" Then
If Range("A2").Value = "" Then
Range("A2").Value = Range("A1").Value
End If
End If
End Sub
--------------------------------------------------------------------
    • good
    • 0
この回答へのお礼

GooUserラック様
早々に回答して頂き有難うございました、
思っていた事ができました。
感謝いたします。

お礼日時:2017/02/02 17:45

このサイトは字下げが出来ないので見ずらいですが、以下。


シート名はSheet1とした。

Sub WK()
Dim CNT1 As Long
Dim CNT2 As Long
Dim END1 As Long
Dim END2 As Long
Dim Sh1 As Worksheet
Set Sh1 = Worksheets("Sheet1")

END1 = Range("A65536").End(xlUp).Row
END1 = END1 + 1

For i = END1 To 2 Step -1
If Range("A" & i).Value = "" Then
If (Range("A" & i - 1).Value <> "" And ((Range("A" & i - 2).Value = "" Or i = 2))) Then
Range("A" & i).Value = Range("A" & i - 1).Value
End If
End If

Next i

Application.StatusBar = False
End Sub
    • good
    • 0
この回答へのお礼

t_fumiaki様
有難うございました、まだまだ素人なもので
マクロ内容を理解できていませんが、思い通りの
事ができました。
本当にありがとうございました。

お礼日時:2017/02/02 17:47

①「データの無い行だけ」とはB列とC列両方ともデータが無い物でしょうか?


② 2つを超えて連続で該当する行が有った場合はどうするのでしょうか?
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!