|
りんさん
おはようございます
さっそく試してみたのですが、全てE11になってしまいました。
E22のある行からは、E22にしたいのです。
>> 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の場所は、B1に必ずある
>>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
|
|