|
▼indy さん:
ponpon です。こんばんは。
offsetとresizeをヘルプで調べればできると思います。
>sheet1
> A B ・ ・・・・ M N
>1 品目CODE 品目 A店 B店
>2 001 みかん 500 700
>3 002 りんご 800 800
>4 003 バナナ 300 450
>5 : : :
>6
>というデータを
>sheet2
> A B C D
>1 品目CODE 品目 A店 B店
>2 001 みかん 500 700
>3 003 バナナ 300 450
>4 : : :
>5
>と、条件は変わらないのですが、sheet1のデータが離れてしまっている
>(DからL列は条件には関係のないデータが入っています)
>ものをsheet2のようにしたい時はどのように書けばいいのでしょうか・・。
>初心者の為、お手数おかけ致します。
>宜しくお願いします。
>>Sub test()
>> Dim myRng As Range
>> Dim myRng2 As Range
>> Dim r As Range
>>
>> With Worksheets("sheet1")
>> Set myRng = .Range(.Range("B2"), .Range("B65536").End(xlUp))
↑ ↑
M2にかえる M65536にかえる。
>> For Each r In myRng
>> If r <> "" Then
>> If r.Value <> r.Offset(, 1).Value Then
>> Set myRng2 = Worksheets("sheet2").Range("A65536").End _
>> (xlUp).Offset(1, 0)
>> Worksheets("sheet2").Range("A1").Resize(1, 3).Value _
>> = .Range("A1").Resize(1, 3).Value
↑
ここは、A1:B1 とC1:D1に分けて考える。
↓
>> myRng2.Resize(1, 3).Value = r.Offset(, -1) _
>> .Resize(1, 3).Value
↑ここも、rからどれくらいoffsetするか考える
>> End If
>> End If
>> Next
>> End With
>>
>>End Sub
自分でがんばってみてください。
後sheet2のA列は書式を文字列にしないといけません。
|
|