< 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

On-line nástroje

Formulář Faktura

Formulář Faktura IV

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

Aktivní diskuse

cislovanie riadkov

martin1 • 18.1. 20:47

Podmíněné formátování

Baja • 18.1. 18:55

VBA - načtení dat ze souboru s proměnným názvem

Fantasyk • 18.1. 14:29

zápis čísla fce suma

Stalker • 18.1. 13:17

smazání více obrázků

Zdenda-R • 18.1. 9:47

výpis adresáře

Milan-158 • 18.1. 9:31

zápis čísla fce suma

Josef-Sekan • 18.1. 9:26