Excel中的VBA循环无法识别时间

时间:2015-03-17 00:00:08

标签: excel vba excel-vba

我正在创建一个电子表格,允许用户在特定的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

除了我更新的初始单元格外,这两个代码应该相同。我尝试过使用不同的时间格式,但似乎没什么用。任何有关如何解决这个问题的帮助或建议都将不胜感激。

0 个答案:

没有答案