Wyświetl milisekundy w Excelu

Próbuję wyświetlić milisekundy w makrze Excela. Mam kolumnę liczb całkowitych, które są znacznikami czasu w milisekundach (np. 28095200 to 7:48:15.200 am), I chcę zrobić nową kolumnę obok niej, która utrzymuje średnią bieżącą i wyświetla czas w formacie hh:mm:ss.000.

 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")

Wyświetla tylko " mm: ss.0" w celi. Jednak kiedy klikam na komórkę, pokazuje "hh: mm: ss" na pasku formuły. Dlaczego brakuje godzin? Jak mogę pokazać godziny, minuty, sekundy i milisekundy?

Author: ashleedawg, 2010-06-22

4 answers

Kliknij prawym przyciskiem myszy komórkę B1 i wybierz sformatuj komórki . W polu tekstowym Custom , w polu tekstowym Wpisz:

[h]:mm:ss.000 

Aby ustawić to w kodzie, możesz zrobić coś takiego:

Range("A1").NumberFormat = "[h]:mm:ss.000"
To powinno dać ci to, czego szukasz.

Uwaga: specjalnie sformatowane pola często wymagają, aby szerokość kolumny była wystarczająco szeroka dla całej zawartości sformatowanego tekstu. W przeciwnym razie tekst zostanie wyświetlony jako ######.

 206
Author: Ben McCormack,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-22 19:38:48

Odkryłem w Excelu 2007, Jeśli wyniki są tabelą z osadzonego zapytania, ss.000 nie działa. Mogę wkleić wyniki zapytań (z SQL Server Management Studio) i sformatować czas dobrze. Ale kiedy osadzam zapytanie jako połączenie danych w Excelu, format zawsze daje .000 jako milisekundy.

 5
Author: Eric,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-12 15:30:17

Zrobiłem to w Excelu 2000.

To stwierdzenie powinno brzmieć: ms = Round(temp - Int(temp), 3) * 1000

Musisz utworzyć niestandardowy format dla komórki wynikowej [h]:mm:ss.000

 4
Author: Gilbert Le Blanc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-22 17:37:45

Najpierw reprezentuj epokę milisekundy jako datę (Zwykle 1/1/1970), a następnie dodaj swój milisekundowy czas 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.

 -3
Author: George,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-30 19:57:46