|
▼さぶちゃん さん:
>▼Yuki さん:
>該当するシート名に変えて実行する事ができました。
>基本的なところを理解しておらず、すみませんでした。
>
>もう一つお聞きしたいのですが、以下の様な元データがあったとして、点数Cから点数Gまでを手入力していき、最後のGに数値データが入力されたら、自動的に実行されて処理後の形になるコードにしたいのですが、以下にあるコードをどの様に変えたらよいかご教授願えますか。
>宜しくお願いいたします。
>
>(元データ)
> A B C D E F G
> No 氏名 点数 点数 点数 点数 点数
> 1 A 7.4 7.5 7.0 7.2 7.9
>
>
>(処理後)
> I J K L M N O P
> No A 最高点 中間点1 中間点2 中間点3 最小点 合計
> 1 A 7.9 7.5 7.4 7.2 7.0 22.1
1行目のタイトルと書式設定はしてありません。
該当のシートモジュールに
Private Sub Worksheet_Change(ByVal target As Range)
If Not Intersect(target, Columns(7).Resize(Rows.Count - 1).Offset(1)) Is Nothing Then
If target.Count = 1 Then Call DataSet(target.Row)
End If
End Sub
Private Sub DataSet(lR As Long)
Cells(lR, 1).Resize(, 7).Copy Cells(lR, 9)
Range(Cells(lR, 11), Cells(lR, 15)).Sort _
Key1:=Range("K" & lR), Order1:=xlDescending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlLeftToRight, SortMethod:=xlPinYin
Cells(lR, 16).Value = Application.Sum(Range(Cells(lR, 12), Cells(lR, 14)))
End Sub
|
|