Odštevanje datuma v milisekundah

Pomoč pri delu z MS Excelom
Odgovori
giovanni
Prispevkov: 12
Pridružen: Ne Maj 13, 2007 2:56 pm

Odštevanje datuma v milisekundah

Odgovor Napisal/-a giovanni »

Pozdravljeni! rad bi odšteval trenutni čas na milisekunde natančno, in ker nisem najdel vgrajene funkcije =now je samo na sekunde. sem na spletu našel en modul
End Type

Private Declare Sub GetSystemTime Lib "kernel32" _
(lpSystemTime As SYSTEMTIME)
Public Function MiliTime() As String

Dim datum As String
Dim sysDatum As SYSTEMTIME

On Error Resume Next
GetSystemTime sysDatum
datum = Hour(Now) & ":" & Minute(Now) & ":" & Second(Now) & _
":" & sysDatum.wMilliseconds

MiliTime = datum

End Function
ta funkcija vrača sistemski čas natančno, vendar sedaj ne vem kako odšteti čas,
poskusil sem funkcija- celica, pri katerem je celica 00:00:00:000, v istem formatu kot funkcija.

Dela, naredim nov modul z odštetim časom, samo ta rešitev je zelo mimo

:D

upam da sem bil dovolj jasen ter hvala za odgovor
admin
Site Admin
Prispevkov: 3692
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Pozdravljeni,

Ne, na žalost niste bili dovolj razumljivi :)... Morate malce bolj razložiti, kaj bi želeli početi, ter ob tem razumeti:
  1. da ura v računalniku z Okni ni natančna na tisočinko sekudne in v Oknih nikoli ne bo, ker Okna niso relno-časovni operacijski sistem,
  2. da Excel formule preračuna enkrat in dokler ni potrebe po ponovnem preračunu (sprememba vhodnih podatkov, zahteva preko F9 ali kaj podobnega) tega ne bo več delal.
Kaj točno torej vi želite oz. kaj točno si predstavljate?
lp,
Matjaž Prtenjak
Administrator
giovanni
Prispevkov: 12
Pridružen: Ne Maj 13, 2007 2:56 pm

Odgovor Napisal/-a giovanni »

est hočem da se mi ob eni kombinaciji tipk prebere sistemski čas(nujno v do milisekund) in se vpiše v eno celico.

sedaj že imam narejen makro, ki dela vredu, vendar je samo so sekunde natančen(now), ker moram še odštet začetni čas, ter zamike.

program je za računanke kronometra.

problem pa je, ne znam delat z enim modulom, ker če vklučim svojo funkcijo, potem ne delajo več zamiki in odštevanja in seštevanja.

V enem stavku, delujoč program moram spremenit iz sekunde v milisekunde natančno, program pa je sestavljen oz večih makrojev in funkcij. ob uporabi ene funkcije iz neta se vse podre.
LP
admin
Site Admin
Prispevkov: 3692
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

:), In kaj vam lahko jaz pomagam, glede na to, da programa pač ne poznam?

Funkcija, ki ste jo prekopirali vam sicer vrne čas v milisekundah (ne popolnoma natančno, kot sem vam napisal že prej!) in vam ga v Excel vpiše v obliki URE:MINUTE:SEKUNDE:MILISEKUNDE. Seveda pa tega formata Excel ne pozna in zato ne ve, kaj z njim početi! Sklepam, da je to vaš problem. Vi v celici XXX pričakujete čas a tam notri se nahaja tisto kar sem napisal prej in tega Excel seveda ne prepozna kot čas ==> vse skupaj ne deluje.

V Excelu je čas predstavljen kot realno število manjše kot 1, saj 1 predstavlja 24 ur. Poslednično 0.5 pač predstavlja pač 12 in tako dalje. Torej Excelu povsem vsako število lahko predstavlja čas. Kot prvo, se morate vi naučiti, kako neko realno število v Excelu predstaviti kot čas, kjer se vidijo tudi miliskunde. To naredite z obliko celice hh:mm:ss,000. Če v to celico vpišete funkcijo NOW(), boste ravnotako videli milisekude. Premislite malo o vsem in poglejte, kaj vas žuli.

Vedeti torej morate, da je čas pač številka in računanje s časom je preprosto seštevanje in odštevanje realnih števil!
lp,
Matjaž Prtenjak
Administrator
giovanni
Prispevkov: 12
Pridružen: Ne Maj 13, 2007 2:56 pm

Odgovor Napisal/-a giovanni »

Ja zelo ste pomagali, ker s formatom celic hh:mm:ss.0, sem dobil izpiz v milisekundah in vse lepo dela, ter čisto enostavno.
Odgovori