2016-07-15 16 views
0

私はここで新しいですが、現在VBでExcelでマクロを構築する課題があります。これは私が現在のセルに設定した論理である:時間枠に応じてセルにIf文を設定する

Private Sub Worksheet_Change(ByVal Target As Range) 

If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then 

Range("D" & Target.Row) = Date 

Range("E" & Target.Row) = Format(Now, "hh:mm:ss") 

End If 

End Sub 

入力されたときに、誰かがB列のセル内の情報を入力するたびに、それが自動的に日付と時間(ログの一種)を取得します。私が必要とするのは、セルEに到達する時間枠に依存しており、セルEから別の行への時間枠に基づいて情報が計算されたシフトを取得する必要があります。

  • Shiftキー1 = 6:30 am-2:30pm
  • シフト2 = 14:30 - 23:30
  • シフト3 =午後11時30分 - 午前6時30分

任意の提案?

+0

利用ANの文ならば、その後、値= xをxは? – StevenWalker

+0

私はちょうど答えを得た – Deluq

答えて

1

私は答えを得たステートメント場合は、次のように3を足した:e値xよりも大きいと小さい場合はその

If Time > TimeValue("6:30:00") And Time <= TimeValue("14:30:00") Then Range("F" & Target.Row) = "1st Shift" 


If Time > TimeValue("14:30:01") And Time <= TimeValue("23:30:00") Then Range("F" & Target.Row) = "2nd Shift" 


If Time > TimeValue("23:30:01") And Time <= TimeValue("6:30:00") Then Range("F" & Target.Row) = "Overtime" 
+0

よくできました!あなたがそこに着いてうれしく、あなたはそれをsussingからいくつかの満足を取ることができます:)。また、3つのIF文を1つにすることも考えられます。次のようになります。x> xおよびx x and x StevenWalker

+0

ヘイスティーブン、ありがとうございます。ええ、1つの文を設定しようとしますが、文法については心配しないでください。 – Deluq

関連する問題