Milisaniyeleri Excel'de görüntüle


123

Milisaniyeleri bir Excel makrosunda görüntülemeye çalışıyorum. Milisaniye cinsinden zaman damgası olan bir tamsayı sütunum var (örneğin, 28095200, 7: 48: 15.200 am) ve yanında, hareketli bir ortalamayı tutan ve zamanı bir hh:mm:ss.000formatta gösteren yeni bir sütun yapmak istiyorum .

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

Bu, hücrede yalnızca "mm: ss.0" görüntüler. Yine de hücreyi tıkladığımda formül çubuğunda "hh: mm: ss" gösteriyor. Saatler neden eksik? Saatleri, dakikaları, saniyeleri ve milisaniyeleri nasıl gösterebilirim?

Yanıtlar:


217

Hücre'ye sağ tıklayın B1ve Hücreleri Biçimlendir'i seçin . In Custom , etiketli metin kutusuna aşağıdaki koymak Tip :

[h]:mm:ss.000 

Bunu kodda ayarlamak için aşağıdaki gibi bir şey yapabilirsiniz:

Range("A1").NumberFormat = "[h]:mm:ss.000"

Bu size aradığınız şeyi vermelidir.

NOT: Özel olarak biçimlendirilmiş alanlar, genellikle sütun genişliğinin biçimlendirilmiş metnin tüm içeriği için yeterince geniş olmasını gerektirir. Aksi takdirde metin olarak görüntülenecektir ######.


Yaşasın! Ama bunu kodda yapabilmemin bir yolu var mı? Şimdi makroyu her çalıştırdığımda biçimlendirme sıfırlanıyor. (çünkü makroda sayfayı siliyor ve yeniden oluşturuyorum.) Cel.EntireRow.NumberFormat = "[h]: mm: ss.000" Ama bu bana hücrede "######" verdi.
Evelyn

@Evelyn - 3 şey: 1) Sayı formatını ayarlamak için ihtiyacınız olan kodu ekledim. 2) Sütununun biçimlendirilmiş metnin tamamına sığacak kadar geniş olduğundan emin olun. Yukarıdaki notuma bakın. 3) Gilbert'in cevabına bakın 3ve Roundişlevin kullanımına dikkat edin . Bu sadece 2 yerine 3 ondalık basamak elde etmenizi sağlar.
Ben McCormack

Ah! Haklısın. Sadece sütunu genişletmem gerekiyordu. Ayrıca, bu durumda sadece 2 doğruluk istedim. Sadece 3 için biçimlendirilmesini istedim. Yardım için çok teşekkürler!
Evelyn

25
Aşağıdakileri yeni keşfettim ve başkalarının da aynı sorunu yaşaması durumunda paylaşmak istedim: Windows / Excel'iniz Almanya için yapılandırıldıysa , tıpkı sayılardaki ondalık basamaklarda olduğu gibi, .ile değiştirilmesi gerekir ,. Aksi takdirde Excel, geçerli bir format olmadığından şikayet edecektir. Yani, olmak zorunda[h]:mm:ss,000
gehho

6

Excel 2007'de keşfettim, eğer sonuçlar katıştırılmış bir sorgudan bir Tablo ise, ss.000 çalışmıyor. Sorgu sonuçlarını (SQL Server Management Studio'dan) yapıştırabilir ve zamanı gayet iyi biçimlendirebilirim. Ancak sorguyu Excel'e Veri Bağlantısı olarak katıştırdığımda, format her zaman milisaniye olarak .000 veriyor.


4

Bunu Excel 2000'de yaptım.

Bu ifade şöyle olmalıdır: ms = Round(temp - Int(temp), 3) * 1000

Sonuç hücresi için özel bir biçim oluşturmanız gerekir. [h]:mm:ss.000


-3

Önce milisaniye zamanını tarih olarak temsil edin (genellikle 1/1/1970), ardından milisaniye sürenizin bir gün içindeki milisaniye sayısına (86400000) bölünmesini ekleyin:

=DATE(1970,1,1)+(A1/86400000)

Hücreniz doğru biçimlendirilmişse, insan tarafından okunabilir bir tarih / saat görmelisiniz.


Merhaba George ve hoş geldiniz! Ne yazık ki, OP hücrenin "uygun şekilde biçimlendirilmesini" başarmanın bir yolunu özellikle istiyor gibi görünüyordu. Orijinal yaklaşımları, ele aldığınız kısmı zaten kapsıyor: milisaniye zaman damgasının biçimlendirilebilir bir tarih saat değerine dönüştürülmesi. Ek olarak, altı yıl ile bu, zamanınızı harcadığınız oldukça eski bir soru. Yeni sorularda vereceğiniz katkı daha çok takdir edilecektir!
Carsten
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.