Próbuję wyświetlić milisekundy w makrze programu Excel. Mam kolumnę liczb całkowitych, które są sygnaturami czasowymi w milisekundach (np. 28095200 to 7: 48: 15.200 rano) i chcę utworzyć nową kolumnę obok niej, która zachowuje bieżącą średnią i wyświetla czas w hh:mm:ss.000
formacie.
Dim Cel As Range
Set Cel = Range("B1")
temp = Application.Average(Range("A1:A2")) / 1000
ms = Round(temp - Int(temp), 2) * 1000
Cel.Value = Strings.Format((temp / 60 / 60 / 24), "hh:mm:ss") _
& "." & Strings.Format(ms, "#000")
Spowoduje to wyświetlenie w komórce tylko „mm: ss.0”. Jednak kiedy klikam komórkę, na pasku formuły wyświetla się „gg: mm: ss”. Dlaczego brakuje godzin? Jak mogę wyświetlić godziny, minuty, sekundy i milisekundy?
3
wRound
funkcji. To gwarantuje, że otrzymasz 3 miejsca po przecinku zamiast tylko 2..
należy go zastąpić,
, tak jak w przypadku miejsc dziesiętnych w liczbach. W przeciwnym razie program Excel będzie narzekał, że nie jest to prawidłowy format. Tak więc musi być[h]:mm:ss,000
Odkryłem w programie Excel 2007, że jeśli wyniki są tabelą z osadzonego zapytania, ss.000 nie działa. Mogę wkleić wyniki zapytania (z SQL Server Management Studio) i dobrze sformatować czas. Ale kiedy osadzam zapytanie jako połączenie danych w programie Excel, format zawsze podaje .000 jako milisekundy.
źródło
Zrobiłem to w programie Excel 2000.
To stwierdzenie powinno być:
ms = Round(temp - Int(temp), 3) * 1000
Musisz utworzyć niestandardowy format dla komórki wynikowej
[h]:mm:ss.000
źródło
Najpierw przedstaw okres milisekund jako datę (zwykle 1/1/1970), a następnie dodaj swój czas milisekundowy podzielony przez liczbę milisekund w ciągu dnia (86400000):
=DATE(1970,1,1)+(A1/86400000)
Jeśli Twoja komórka jest prawidłowo sformatowana, powinieneś zobaczyć datę / godzinę czytelną dla człowieka.
źródło