2017-12-21 9 views
1

Gemäß der folgenden Logik, der Code verbirgt einige Zeilen, aber es stoppt in Zeile 80 und zeigt diesen Fehler. Ich habe nach dem Format dieser Datum und Uhrzeit gesucht, sieht gut aus für mich. Kann mir jemand helfen herauszufinden, was schief gehen könnte?Ich bekomme ständig 'Laufzeitfehler 13' mit 'Mydate = Sheets ("Zusammenfassung"). Zellen (i, "A"). Wert'

Public Sub ShowShift3() 
Dim i As Long, j As Long, lastrow1 As Long, lastrow2 As Long 
Dim mydate As Date 
Dim mytime As Date 
Dim mystatus As String 

lastrow1 = Sheets("Summary").Range("A" & Rows.Count).End(xlUp).Row 
Sheets("Summary").Activate 

For i = lastrow1 To i = 2 Step -1 
mydate = Sheets("Summary").Cells(i, "A").Value 
mytime = Sheets("Summary").Cells(i, "B").Value 
If (mydate < Date) And (mytime < TimeValue("22:00:00")) Then 
    Worksheets("Summary").Rows(i).Hidden = True 
End If  
Next  
End Sub 

Antwort

0

Wenn Sie mit dem folgenden Code ersetzen waren, glaube ich, sollte es funktionieren wie erwartet:

Public Sub ShowShift3() 
Dim i As Long, j As Long, lastrow1 As Long, lastrow2 As Long 
Dim mydate As Date 
Dim mytime As Date 
Dim mystatus As String 

lastrow1 = Sheets("Summary").Range("A" & Rows.Count).End(xlUp).Row 

For i = lastrow1 To 2 Step -1 
    If IsDate(Sheets("Summary").Cells(i, "A").Value) = True Then 'check if the contents in the cell are in fact a date 
     mydate = Sheets("Summary").Cells(i, "A").Value 
     mytime = Format(Sheets("Summary").Cells(i, "B").Value, "hh:mm") 'format the time properly for comparison 
     If (mydate < Date) And (mytime < TimeValue("22:00:00")) Then 
      Worksheets("Summary").Rows(i).Hidden = True 
     End If 
    End If 
Next i 
End Sub 
+0

Das funktioniert wie ein Zauber! Danke vielmals!! –

+0

@RahulBaranwal auch, nur ein Zeiger, müssen Sie nicht aktivieren ein Blatt, damit zu arbeiten, haben Sie vielleicht bemerkt, dass ich diese Zeile aus dem Code entfernt. – Xabier

+0

Oh ja! Ich bemerkte, dass. Ich bin immer verwirrt darüber, wann wir es aktivieren. Gibt es eine allgemeine Situation, in der ich das Blatt aktivieren muss? –

1

Der Fehler kann nicht in Ihren Daten sein als der Code:

Sub DateCheck() 
    Dim mydate As Date 
    i = 1 
    mydate = Sheets("Summary").Cells(i, "A").Value 
End Sub 

enter image description here

+0

das Sinn macht, obwohl ich, wenn die Zellen die richtigen Inhalte müssen sehen, geprüft, ich werde es tun wieder um zu sehen, ob ich etwas verpasst habe. –

1

Wahrscheinlich VBA kann den Wert nicht analysieren, die Sie in der entsprechenden Zelle auf ein Datum haben.

Folgendes überprüfen:

Sub TestMe() 
    Dim a As Date 
    a = "what" 
    a = "" 
End Sub 

Sowohl "" und "what" kann nicht auf ein Datum umgewandelt werden. Ich nehme an, dass in Ihrem Fall die Cells(i, "A") eine leere ist, daher erhalten Sie diesen Fehler.

  • Long wird 0
  • String:

    Die anderen Variablentypen Long, String, Variant, Object usw. können leicht auf den Wert der leeren Zelle und jedes von ihnen wäre es entsprechend zugeordnet werden parsen wird ""

  • wird False
+0

Ja, ich stieß auf dieses Ding in meinen früheren Codes, überprüft dafür, scheint nicht dieser Fehler zu sein. –

Verwandte Themen