1

目標:Excelシートにはアクティビティのリストが含まれています。目標は、2つのアクティビティの日付/時刻を比較することです。2つの間に重複があるかどうかを識別する必要があります。列Bには各アクティビティの開始日時が含まれ、列Cには各アクティビティの終了日時が含まれます。

ActivityOneStartTime = Range("B41").Value

ActivityOneEndTime = Range("C41").Value

ActivityTwoStartTime = Range("B32").Value

ActivityTwoEndTime = Range("C32").Value


If ActivityOneStartTime >= ActivityTwoStartTime Then

    If ActivityOneStartTime < ActivityTwoEndTime Then

        booScheduleConflict = True

    End If

End If

If ActivityOneEndTime <= ActivityTwoEndTime Then

    If ActivityOneEndTime > ActivityTwoStartTime Then

        booScheduleConflict = True

    End If

End If

もちろん、上記は機能しません。それで、他のいくつかの失敗したアプローチを試した後、私は最初の年、次に数ヶ月、次に数日、次に数時間、そして数分を比較するケースステートメントを設定するペースを試し始めましたが、もっと簡単な方法があると確信しています。

このチャレンジにご協力いただき、ありがとうございます。

4

3 に答える 3

1

このような:

ActivityOneStartTime = Range("B41").Value
ActivityOneEndTime = Range("C41").Value
ActivityTwoStartTime = Range("B32").Value
ActivityTwoEndTime = Range("C32").Value

If ActivityOneStartTime < ActivityTwoEndTime Then
    If ActivityOneEndTime > ActivityTwoStartTime Then

        booScheduleConflict = True

    End If    
End If
于 2012-08-26T15:35:11.053 に答える
1

あなたの問題は、重複をテストするロジックを決定していると思います。

これを試して

booScheduleConflict = Not(ActivityOneEndTime <= ActivityTwoStartTime or _
                          ActivityOneStartTime >=  ActivityTwoEndTime)
于 2012-08-26T19:58:43.677 に答える
1

TimeValue プロパティを使用して実行できます。次に例を示します。

Dim date1 As Date
Dim date2 As Date
Dim date3 As Date

date1 = TimeValue(Range("A1").Text)
date2 = TimeValue(Range("B1").Text)
date3 = TimeValue(Range("C1").Text)

If date3 >= date1 And date3 <= date2 Then
     'Yes!
Else
     'No!
End If
于 2013-07-02T14:20:13.810 に答える