Próbuję użyć następującego kodu, aby wyświetlić czas potrzebny na wykonanie serii komend. W tym przypadku spodziewałem się, że powróci z "10" lub czymś podobnym.VBA - Wyświetlanie, jak długo sub zajął
Zamiast wraca z:
co się dzieje i jak mogę sformatować to prawidłowo?
Sub timeyWimey()
Dim t1 As Date
Dim t2 As Date
Dim timeTaken As Date
t1 = Now()
Application.Wait (Now + TimeValue("0:00:10"))
t2 = Now()
timeTaken = t2 - t1
MsgBox timeTaken
End Sub
EDIT:
Kod końcowy po kilku świetnych odpowiedzi:
Sub timeyWimey()
'Dim t1 As Double
'Dim t2 As Double
t1 = Now()
Application.Wait (Now + TimeValue("0:00:10"))
t2 = Now()
timeTaken = t2 - t1
MsgBox Format(timeTaken, "nn:ss.000")
End Sub
Wyniki w:
BAM! Problem rozwiązany! Dziękuję wszystkim za pomoc!
Dziękuję. To zdecydowanie wyjaśnia problem. Pozwól mi chwilę się nad tym zastanowić. – timbram
W jaki więc sposób działa format liczb po przecinku (ilość bieżącego dnia)? Jeśli ponownie uruchomisz mój skrypt, zachowując wszystko jako podwójne, otrzymam informację, że czas, który upłynął (10 sekund), to 0.00005787036934635. Czy to procent dnia czy coś takiego? – timbram
Dołączyłem sposób, w jaki można sformatować podwójne na końcu mojej odpowiedzi. A '0.00005787036934635' to w zasadzie procent na dzień. Na przykład, gdyby było 0,5, to byłoby 12: 00 popołudnie, ponieważ minęło pół dnia. – Newd