我正在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 –