07. maj 2007 - 10:54Der er
2 kommentarer og 1 løsning
Hjælp til fejlfinde tids kode i vb
Hey jeg har et lille problem med at få min kode til at virke, er der nogle som kan se hvor fejlen er!?
Sub Tid() For r = 11 To 40 A = TimeValue("03:59:00") '"0,165972222222222" B = TimeValue("23:59:59") '"0,999988425925926" C = TimeValue("00:01:00") '"0,000694444444444444" D = TimeValue("00:00:59") '"0,00068287037037037" Ft = Format(Cells(r, 4), "hh:mm:ss") 'Førtid T = Format(Cells(r, 5), "hh:mm:ss") 'Tid Et = Format(Cells(r, 6), "hh:mm:ss") 'Eftertid V1 = Format(Cells(r, 8), "dd-mm-yyyy hh:mm") V2 = Format(Cells(r, 7), "dd-mm-yyyy hh:mm") If T <> "" Then If T = "" Or T < A Then V1 = T + B - Ft + C - D + Format(Now(), "dd-mm-yyyy") Else V1 = T + B - Ft + C - D + Format(Now() - 1, "dd-mm-yyyy") End If Else End If If T <> "" Then If T = "" Or T < A Then If Ft = "" Then V2 = T + Et + Format(Now() + 1, "dd-mm-yyyy") Else V2 = T + Format(Now() + 1, "dd-mm-yyyy") End If Else If Ft = "" Then V2 = T + Et + Format(Now(), "dd-mm-yyyy") Else V2 = T + Format(Now(), "dd-mm-yyyy") End If End If End If Next End Sub
Her er 2 måder, resultatet er det samme. Det du skal være opmæksom på er at Format(Now(), "dd-mm-yyyy") kun giver en streng, ikke en rigtig dato. Pas på med Format..den skal efterfølgende laver om til vædi, der kan regnes på med DateValue / TimeValue
Sub Tid() For r = 11 To 40 A = TimeValue("03:59:00") '"0,165972222222222" B = TimeValue("23:59:59") '"0,999988425925926" C = TimeValue("00:01:00") '"0,000694444444444444" D = TimeValue("00:00:59") '"0,00068287037037037" Ft = TimeValue(Format(Cells(r, 4), "hh:mm:ss")) 'Førtid T = TimeValue(Format(Cells(r, 5), "hh:mm:ss")) 'Tid Et = TimeValue(Format(Cells(r, 6), "hh:mm:ss")) 'Eftertid V1 = DateValue(Format(Cells(r, 8), "dd-mm-yyyy hh:mm")) V2 = DateValue(Format(Cells(r, 7), "dd-mm-yyyy hh:mm")) If T <> "" Then If T = "" Or T < A Then V1 = T + B - Ft + C - D + DateValue(Format(Now(), "dd-mm-yyyy")) Else V1 = T + B - Ft + C - D + DateValue(Format(Now() - 1, "dd-mm-yyyy")) End If Else End If If T <> "" Then If T = "" Or T < A Then If Ft = "" Then V2 = T + Et + DateValue(Format(Now() + 1, "dd-mm-yyyy")) Else V2 = T + DateValue(Format(Now() + 1, "dd-mm-yyyy")) End If Else If Ft = "" Then V2 = T + Et + DateValue(Format(Now(), "dd-mm-yyyy")) Else V2 = T + DateValue(Format(Now(), "dd-mm-yyyy")) End If End If End If Next End Sub
Sub Tid2() For r = 11 To 40 A = TimeValue("03:59:00") '"0,165972222222222" B = TimeValue("23:59:59") '"0,999988425925926" C = TimeValue("00:01:00") '"0,000694444444444444" D = TimeValue("00:00:59") '"0,00068287037037037" Ft = Cells(r, 4) 'Førtid T = Cells(r, 5) 'Tid Et = Cells(r, 6) V1 = Cells(r, 8) V2 = Cells(r, 7) If T <> "" Then If T < A Then V1 = T + B - Ft + C - D + Date Else V1 = T + B - Ft + C - D + (Date - 1) End If Else End If If T <> "" Then If T < A Then If Ft = "" Then V2 = T + Et + (Date + 1) Else V2 = T + (Date + 1) End If Else If Ft = "" Then V2 = T + Et + Date Else V2 = T + Date End If End If End If Next End Sub
V1 og v2 kan jeg ikke få til at virke uden at lave dem om til cells() ellers så virker det helt fint ser det ud til... og tak for informationen om format tror det vil gøre det nemmere for mig i fremtiden.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.