< návrat zpět

MS Excel


Téma: funkce now setiny rss

Zaslal/a 14.9.2016 9:36

ahoj, mam v excelu casomiru a chtel bych, aby se zapisovaly i setiny. jak to udelat? mam to pres funkci Now - zacatek zavodu.
dekuji za rady

Sub Cas()
tCasZacatek = Now
tCasKonec = Now
tCas = tCasKonec - tCasZacatek
End Sub
Sub AktualizaceCasu()
UserForm1.Label10.Caption = Format(Now - tCasZacatek, "h:mm:ss")
NextTick = Now + TimeValue("00:00:01")
tCas = tCas + TimeValue("00:00:01")
Application.OnTime NextTick, "AktualizaceCasu"
End Sub

Zaslat odpověď >

Strana:  1 2   další »
#032782
MePExG
Format "hh:mm:ss,00"citovat
#032783
avatar

mepexg napsal/a:

Format "hh:mm:ss,00"

Keď už, tak
Format "hh:mm:ss,ss"
Ale nedáva mi to zmysel, keďže TimeValue je možné dávať iba v sekundách.citovat
#032784
avatar
to jsem uz zkousel
ub Cas()
tCasZacatek = Now
tCasKonec = Now
tCas = tCasKonec - tCasZacatek
End Sub
Sub AktualizaceCasu()
UserForm1.Label10.Caption = Format(Now - tCasZacatek, "h:mm:ss,00")
NextTick = Now + TimeValue("00:00:01")
tCas = tCas + TimeValue("00:00:01")
Application.OnTime NextTick, "AktualizaceCasu"

ale neppocita mi to setiny, setiny jsou 00. pri ,ss to pise sekundy

tak jak to tady napsat, at to pise i setiny?a pocita je tocitovat
#032786
avatar
zkoušel jste formát s tečkou?

"hh:mm:ss.00"citovat
#032788
avatar
No napadlo mi to takto
=TEXT(NOW();"hh:nn:ss")&TEXT(MOD(MOD(NOW();1) * 24 * 60* 60;1);",00")

Do VBA
TEXT=FORMAT
MOD si treba naprogramovať.citovat
icon #032789
eLCHa
Now nemá setiny, takže je třeba použít Timer.
Asi nejlépeWorksheetFunction.Text(Timer / 60 / 60 / 24, "mm:ss.00")nebo lzeFormat(Now, "nn:ss,") & Format(Timer * 100 Mod 100, "00")citovat
#032790
avatar
Funkce Format vytváří zásadně textový výstup. Pokud chci získat aktuální čas se setinami sekund jako číslo, mohu do buňky s formátem "h:mm:ss,00" vložit hodnotu
Selection = Timer/24/60/60
citovat
icon #032791
eLCHa
Sub Cas()
Dim nStart As Single
nStart = Timer
MsgBox 1'tady se jako něco dělá - klikněte OK za jak dlouho budete chtít
Dim nEnd As Single
nEnd = Timer

Dim nTime As Single
nTime = nEnd - nStart

Debug.Print WorksheetFunction.Text(nTime / 60 / 60 / 24, "mm:ss.00")
End Sub
citovat
#032794
avatar

eLCHa napsal/a:

Now nemá setiny, takže je třeba použít Timer.

Funkcia NOW na liste má zlomky sekúnd.
V kóde VBA má iba sekundy.
To som nevedel. 7citovat
icon #032795
eLCHa
@marjankaj

Nikdo neví všechno. Já zase nevěděl, že fce listu má i desetiny. Mohlo mi to dojít, když je TEXT (HODNOTA.NA.TEXT) dokáže zobrazit a Format ne.

NOW ani není součástí WorksheetFunction, ale lze použít v Evaluate. Takže lze napsat Dim nTime As Single
nTime = Evaluate("=NOW()")
Debug.Print WorksheetFunction.Text(nTime, "m:ss.00")

Ono to v excelu bude možná takto i bezpečnější, protože Timer počítá sekundy od půlnoci a pokud bude kód spuštěn např. v 23:59:59 a ukončen v 0:00:01, může dojít k chybe (nStart > nEnd). Takto je to ošetřeno.citovat

Strana:  1 2   další »

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje