|
まこすけ さん、こんばんわ。
> A B C A B C
>1 11 E11 1 11 E11 E11
>2 XX 22 2 XX 22 E11
>3 XX 3 XX E11
>4 4
>5 11 5 11 E11
>6 6
>7 11 E22 7 11 E22 E22
>8 33 8 33
>9 XX 9 XX E22
>10 10
>
>E11= 列は固定・行は固定、頭にEが必ず付き、数字は変動します
>E22= 列は固定・行は変動、頭にEが必ず付き、数字は変動します
?
>A列のセルに何か入力されていたら、E11とE22をC列に書き出したいのです
こういう事でしょうか?
Sub test()
Dim r1 As Range
Dim RR As Long, Rmax As Long, s1 As String
'A列のデータ範囲
With Application.ActiveSheet
Set r1 = Application.Intersect(.Columns("A:A"), .UsedRange)
End With
'
Rmax = r1.Count
ReDim cdat(1 To Rmax, 1 To 1) As Variant
'
'B列にExxが出たら入れ替え?
s1 = "E11" '一応初期値
For RR = 1 To Rmax
'A列に何か入ってたら
If r1.Cells(RR).Value <> "" Then
'B列がExxだったら入れ替え?
With r1.Cells(RR).Offset(0, 1)
If Left(.Text, 1) = "E" Then s1 = .Text
End With
'C列に入れる文字列
cdat(RR, 1) = s1
End If
Next
'一括で範囲に渡す。
r1.Offset(0, 2).Value = cdat()
'
Erase cdat
Set r1 = Nothing
End Sub
|
|