我正在创建一个电子表格,允许用户在特定的15分钟间隔内将事件复制到工作簿中的特定工作表。时间间隔从午夜到23:45。该代码适用于复制在6:45或之前发生的任何事情,但之后的任何事情都会出现空白。我手动检查了数据,主要工作表上确实发生了6:45之后发生的事件,应该复制过来。数据全部从同一个Oracle表中提取,因此时间格式应该相同。
以下是一段实际可行的代码:
'Core - Orange 06:45
If ActiveCell.Address = "$AC$6" Then
If Range("AC6").Value = 0 Then
MsgBox "No Exceptions Reported"
Else:
Sheets("Exceptions").Range("A4", "H50").Clear
Sheets("Core").Select
I = 2
X = 4
Do While Sheets("Core").Range("A" & I).Value <> ""
If Range("J" & I).Value <= TimeSerial(6, 45, 0) And Range("K" & I).Value > TimeSerial(6, 45, 0) Then
Range("A" & I, "H" & I).Select
Selection.Copy
Sheets("Exceptions").Select
Range("A" & X).Select
ActiveSheet.Paste
I = I + 1
X = X + 1
Sheets("Core").Select
Else:
Sheets("Exceptions").Select
Range("A1").Select
I = I + 1
End If
Loop
End If
End If
以下代码无效:
'Core - Orange 07:00
If ActiveCell.Address = "$AD$6" Then
If Range("AD6").Value = 0 Then
MsgBox "No Exceptions Reported"
Else:
Sheets("Exceptions").Range("A4", "H50").Clear
Sheets("Core").Select
I = 2
X = 4
Do While Sheets("Core").Range("A" & I).Value <> ""
If Range("J" & I).Value <= TimeSerial(7, 0, 0) And Range("K" & I).Value > TimeSerial(7, 0, 0) Then
Range("A" & I, "H" & I).Select
Selection.Copy
Sheets("Exceptions").Select
Range("A" & X).Select
ActiveSheet.Paste
I = I + 1
X = X + 1
Sheets("Core").Select
Else:
Sheets("Exceptions").Select
Range("A1").Select
I = I + 1
End If
Loop
End If
End If
除了我更新的初始单元格外,这两个代码应该相同。我尝试过使用不同的时间格式,但似乎没什么用。任何有关如何解决这个问题的帮助或建议都将不胜感激。