やりたいこと
①元データのA列を2行目から順番に最後までチェックし、重複しているものは無視、していないものは別シートのA1→B1→C1と1行目に入れる
②データ貼り付け先の1行目とコピー元のA列を参照し、一致するものはそのB列のデータをコピー先の一致した列に上から順番に貼り付ける
※日付ごとの列にしたい
現状
①曜日が入っていると上手く反映されないので消しています
Columns("A:A").Select Selection.Replace What:="(金)", Replacement:=" ", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Selection.Replace What:="(木)", Replacement:=" ", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Selection.Replace What:="(土)", Replacement:=" ", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Selection.Replace What:="(日)", Replacement:=" ", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Selection.Replace What:="(月)", Replacement:=" ", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Selection.Replace What:="(火)", Replacement:=" ", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Selection.Replace What:="(水)", Replacement:=" ", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False
②現状は時間のところに日付をコピペしてB列ごとデータをコピペしているため、日付ごとに対応できてないです
'受付履歴の時間を"データ"シートに保存しておく Range("A2").Copy Range("B1").Select ActiveSheet.Paste Range(Range("B1"), Cells(Rows.count, 2).End(xlUp)).Copy ThisWorkbook.Sheets("データ").Cells(1, Columns.count).End(xlToLeft).Offset(, 1) Next 'ループおわり
困っていること
下のコードでA2以降の重複しない日付を取れるかなと思うのですが、
A列じゃなくてB列から取りたい時はどこをいじればいいのか分からないです(´・ω・`)
また、取ったデータを別シートに貼り付けたい時はどのようにしたら良いのでしょうか…
Dim A As New Collection, i As Long On Error Resume Next For r = 2 To Cells(Rows.count, 1).End(xlUp).Row A.Add Cells(i, 1), Cells(i, 1) Next i
VBAを使えば繰り返し処理や条件判断や代入ができますが、質問内容には繰り返しや条件判断の部分が欠落しています。
そういう観点で頭を整理したほうがいいと思います。
そうすれば、質問内容も具体的にかけるようになると思います。
回答ありがとうございます!
そうですね、すみません混乱したふわっとした質問となっておりました…
①元データのA列を2行目から順番に最後までチェックし、重複しているものは無視、していないものは別シートのA1→B1→C1と1行目に入れていく
②データ貼り付け先の1行目とコピー元のA列を参照し、一致するものはそのB列のデータをコピー先の一致した列に上から順番に貼り付けていく。
やりたいことを具体化するとこんな感じになります!
やりたいことができないのはどんな障壁があるからでしょうか?
日付は降順で並んでいるのですか。画像ではそうなってますが、実際のデータも最後まで降順ですか。
日付毎の時刻の重複は排除しなくていいですか。
>日付は降順で並んでいるのですか。画像ではそうなってますが、実際のデータも最後まで降順ですか。
はい、実際のデータもこの通りです!
日付毎の時刻の重複は排除しなくていいですか。
直前に以下のコードで時間の重複削除は実行しますので、大丈夫です!
Dim A As Long
With Range("C9")
For A = .CurrentRegion.Rows.count To 1 Step -1
If .Offset(A, 0) = .Offset(A - 1, 0) Then .Offset(A, 0).EntireRow.Delete
Next A
End With
※実際のデータはC9以下に時間が来るためこのようなコードになっています。
回答5件
あなたの回答
tips
プレビュー