我正在Excel的這個時間表上工作,這會讓我知道如果在特定的班次中只安排一個人。那麼宏是如何通過我附加的特定列表來檢查它們的開始時間和結束時間。如果我在某個特定時間安排某人,如果其他人會重疊,我希望宏讓我知道。以下代碼正在工作,但現在我正在測試以查看它是否有效,我將一個名稱,它們將運行的應用程序服務器,開始時間和結束時間。所以這個宏經過一個循環來檢查我在excel上提供的表,但是我得到了一個錯誤。例如,如果我將開始時間設置爲上午6點,結束時間設置爲上午6點30分,並且在桌面上提供,我還有其他人在行撻時間在5:59上午對rowendtime = 6:35上午運行該應用程序它應該讓我看到一個「衝突」,因爲它們是重疊的,但由於某種原因,它顯示出「沒有衝突」。任何幫助都會得到真正的讚賞。下面是代碼:我該如何安排時間表vba的時間表
Public Sub LoopRows(Appserver As String, StartTime As Date, EndTime As Date)
Dim x As Integer
Dim NumROws As Integer
NumROws = Range("Sheet3!C5").End(xlDown).Row - Range("Sheet3!C5").Row
Worksheets("Sheet3").Activate
Range("Sheet3!C5").Select
msgbox Appserver
msgbox StartTime
msgbox EndTime
For x = 1 To NumROws
ActiveCell.Offset(1, 0).Select
If (ActiveCell.Offset(0, 1).Value = Appserver) Then
Dim RowStartTime As Date
Dim RowEndTime As Date
msgbox ActiveCell.Offset(0, 1).Value
msgbox RowStartTime = Val(ActiveCell.Offset(0, 3).Value)
msgbox RowEndTime = Val(ActiveCell.Offset(0, 4).Value)
If (((EndTime > RowStartTime) And (EndTime < RowEndTime)) Or (((StartTime > RowStartTime) And (StartTime < RowEndTime))) Or (((StartTime < RowStartTime) And (EndTime > RowEndTime)))) Then
msgbox "Conflict"
Else
msgbox "noConflict"
End If
End If
Next
End Sub
感謝您的編輯@comintern –