• ベストアンサー

VBAの日付について教えてください

VBA初心者です。 簡単な質問かもしれませんが、教えていただければと思います。 下記のように日付と時間が並んでいる場合に、営業日の最終注文の時間(B列)をF列にコピーしたいのですが、どうもうまくできません。 例えば、2008/1/15では17:10:00をF列にコピーして、2008/1/16では14:05:00をF列にコピーして・・・というマクロを作成したいのです。 どなたか知恵をお貸しください。 よろしくお願いします。  A        B      C      D     E    F            受注時間   品名     個数 2008/1/15   10:50:00    ・      ・   ・ 2008/1/15   12:55:00    ・      ・   ・ 2008/1/15   15:05:00 2008/1/15   17:10:00 2008/1/16   8:52:00 2008/1/16   14:05:00 2008/1/19   11:10:00 2008/1/19  15:15:00 2008/1/21  9:20:00 2008/1/21  9:53:00  ・  ・  ・

質問者が選んだベストアンサー

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3

#2です。 もしNo2をマクロでと言うのなら、 Sub try() With Range("A2", Cells(Rows.Count, 1).End(xlUp)).Offset(, 5) .Formula = "=IF(A2<>A3,B2,"""")" .NumberFormat = "hh:mm:ss" .Value = .Value ' もしF列をF2以下に上詰めするのなら下記を有効にして下さい。 '.SpecialCells(xlCellTypeBlanks).Delete End With End Sub 現状はNo2の状態を数式ではなく値にしてます。 上詰めにするのなら適宜修正願います。 ご参考程度に。

naccky
質問者

お礼

シンプルで非常に参考になりました。 質問が分かりにくく失礼いたしました。 その中でも質問の意図をくみ取っていただき感謝しております。 本当にありがとうございました。

その他の回答 (2)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

F列にどのように表示していきたいのか、明確にされては? 例えば、 2008/1/15 17:10:00 と同じ行のF列に表示するなら、 F2 =IF(A2<>A3,B2,"")  で下にフィルコピー・セルの書式で時刻にしてあげるだけですが・・・? そう言う事ではないんですよね?

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.1

Sub Macro2() Dim i Range("A2", Cells(Cells(65536, 1).End(xlUp).Row, 5)).Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range("B2") _ , Order2:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _ False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin i = 2 Do Until Cells(i, 1) = "" If Cells(i, 1) <> Cells(i - 1, 1) Then Range("f65536").End(xlUp).Offset(1, 0) = Cells(i, 1).Text End If i = i + 1 Loop Range("A2", Cells(Cells(65536, 1).End(xlUp).Row, 5)).Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range("B2") _ , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _ False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin End Sub こんな感じで

naccky
質問者

お礼

ありがとうございました。 思ったような作業ができました。 このような複雑な構文は思いもつかないので、非常にありがたく思っております。

関連するQ&A