|
▼yata さん:
yataさん、こんにちわ。
早速、これで試します。本当に、毎々有難うございます。
>素人じゅうすけ さん こんばんわ
>2項目の日付表示について
>C列に縦方向に表示ではなく、同じ行の右方向に表示でしたら割と簡単です。
>
>最初に提示した行挿入が無いコードに追加してください
>Sub Test2()
>Dim R As Long, r2 As Long '元データの行数と転記先の行番号
>Dim 人名 As String
>Dim Sum As Double
>R = UsedRange.Rows.Count
>
>人名 = InputBox("抽出する人")
>
>For Each Rng In Range(Range("C2"), Cells(R, 3))
> If Rng.Value = 人名 Then
> 'G列から取り出して合計する
> Sum = Sum + Rng.Offset(0, 4).Value
>
> End If
>Next
>
> With Sheets("Sheet4")
> r2 = .Range("A65536").End(xlUp).Offset(1, 0).Row
> .Cells(r2, 1) = 人名
> .Cells(r2, 2) = Sum
> For Each Rng In Range(Range("C2"), Cells(R, 3)) '●ここから
> If Rng.Value = 人名 Then
> 日付 = Rng.Offset(0, -2)
> .Cells(r2, 1).End(xlToRight).Offset(0, 1) = 日付
> End If
> Next '●ここまでを追加
> End With
>
>'降順に並べ替え
>With Sheets("Sheet4")
> .Activate
> 'データが1件以上あったら並び替えをする
> If .Range("A3") <> "" Then
> .Range("A1").Select
> Selection.Sort Key1:=.Range("B2"), Order1:=xlDescending
> End If
>End With
>End Sub
>
>これでも空白行を入れると
>.Range("A1").Select
> Selection.Sort Key1:=.Range("B2"), Order1:=xlDescending
>では最初の空白行以降は並び替えの対象にならないので
>.Range("A1").Select を全セルを対象にして .Cells.Select としなければなりません。
>また、この場合は並び替えられたら空白行は全て取り除かれます。
>ということで加工の対象となるデータは極力空白行を作ったりしない方がよいと思います。
>必要なら全て作業が終わってから表を整えるのが良いと思います。
|
|