แสดงมิลลิวินาทีใน Excel


123

ฉันพยายามแสดงมิลลิวินาทีในแมโคร Excel ฉันมีคอลัมน์ของจำนวนเต็มซึ่งเป็นการประทับเวลาในหน่วยมิลลิวินาที (เช่น 28095200 คือ 7: 48: 15.200 น.) และฉันต้องการสร้างคอลัมน์ใหม่ถัดจากนั้นซึ่งจะเก็บค่าเฉลี่ยที่ทำงานอยู่และแสดงเวลาใน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")

ซึ่งจะแสดงเฉพาะ "mm: ss.0" ในเซลล์ เมื่อฉันคลิกที่เซลล์มันจะแสดง "hh: mm: ss" ในแถบสูตร ทำไมชั่วโมงหายไป ฉันจะแสดงชั่วโมงนาทีวินาทีและมิลลิวินาทีได้อย่างไร

คำตอบ:


217

คลิกขวาบนมือถือB1และเลือกรูปแบบเซลล์ ในกำหนดเองให้ใส่สิ่งต่อไปนี้ในกล่องข้อความที่มีชื่อว่าType :

[h]:mm:ss.000 

ในการตั้งค่านี้ในรหัสคุณสามารถทำสิ่งต่อไปนี้:

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

นั่นควรให้สิ่งที่คุณกำลังมองหา

หมายเหตุ: ช่องที่จัดรูปแบบพิเศษมักต้องการให้ความกว้างของคอลัมน์กว้างพอสำหรับเนื้อหาทั้งหมดของข้อความที่จัดรูปแบบ ######มิฉะนั้นข้อความจะแสดงเป็น


เย้! แต่มีวิธีที่ฉันสามารถทำได้ในรหัส? ทุกครั้งที่ฉันเรียกใช้แมโครการจัดรูปแบบจะถูกรีเซ็ต (เพราะฉันกำลังลบและสร้างแผ่นงานใหม่ในมาโคร) Cel.EntireRow.NumberFormat = "[h]: mm: ss.000" แต่นั่นทำให้ฉันมี "######" ในเซลล์
Evelyn

@Evelyn - 3 สิ่ง: 1) ฉันเพิ่มรหัสที่คุณต้องการเพื่อตั้งค่ารูปแบบตัวเลข 2) ตรวจสอบให้แน่ใจว่าคอลัมน์ของคุณกว้างพอที่จะใส่ข้อความที่จัดรูปแบบทั้งหมดได้ ดูบันทึกของฉันด้านบน 3) ดูคำตอบของ Gilbert และสังเกตการใช้งาน3ในRoundฟังก์ชัน ทำให้แน่ใจว่าคุณจะได้ทศนิยม 3 ตำแหน่งแทนที่จะเป็นแค่ 2
Ben McCormack

อา! คุณพูดถูก ฉันแค่ต้องการขยายคอลัมน์ นอกจากนี้ฉันต้องการความแม่นยำเพียง 2 ในกรณีนี้ ฉันแค่อยากให้ฟอร์แมตเป็น 3 ขอบคุณมากสำหรับความช่วยเหลือ!
Evelyn

25
ฉันเพิ่งค้นพบสิ่งต่อไปนี้และต้องการแบ่งปันในกรณีที่คนอื่นประสบปัญหาเดียวกัน: ถ้า Windows / Excel ของคุณได้รับการกำหนดค่าสำหรับเยอรมนี.จะต้องแทนที่ด้วย,เช่นเดียวกับตำแหน่งทศนิยมเป็นตัวเลข มิฉะนั้น Excel จะบ่นว่าไม่ใช่รูปแบบที่ถูกต้อง ดังนั้นจึงต้องมี[h]:mm:ss,000
gehho

6

ฉันได้ค้นพบใน Excel 2007 ถ้าผลลัพธ์เป็นตารางจากแบบสอบถามที่ฝังไว้ ss.000 จะไม่ทำงาน ฉันสามารถวางผลลัพธ์แบบสอบถาม (จาก SQL Server Management Studio) และจัดรูปแบบเวลาได้ดี แต่เมื่อฉันฝังคิวรีเป็นการเชื่อมต่อข้อมูลใน Excel รูปแบบจะให้. 000 เป็นมิลลิวินาทีเสมอ


4

ฉันทำสิ่งนี้ใน Excel 2000

คำสั่งนี้ควรเป็น: ms = Round(temp - Int(temp), 3) * 1000

คุณต้องสร้างรูปแบบที่กำหนดเองสำหรับเซลล์ผลลัพธ์ของ [h]:mm:ss.000


-3

อันดับแรกแทนช่วงเวลามิลลิวินาทีเป็นวันที่ (โดยปกติคือ 1/1/1970) จากนั้นเพิ่มเวลามิลลิวินาทีหารด้วยจำนวนมิลลิวินาทีในหนึ่งวัน (86400000):

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

หากเซลล์ของคุณได้รับการจัดรูปแบบอย่างถูกต้องคุณควรเห็นวันที่ / เวลาที่มนุษย์สามารถอ่านได้


สวัสดีจอร์จและยินดีต้อนรับ! น่าเสียดายที่ดูเหมือนว่า OP จะขอวิธีที่จะทำให้เซลล์นั้น "จัดรูปแบบถูกต้อง" โดยเฉพาะ แนวทางดั้งเดิมของพวกเขาครอบคลุมส่วนที่คุณกำลังพูดถึงอยู่แล้วนั่นคือการแปลงการประทับเวลามิลลิวินาทีเป็นค่าวันที่และเวลาที่จัดรูปแบบได้ นอกจากนี้เมื่อหกปีที่แล้วนั่นเป็นคำถามที่ค่อนข้างเก่าแก่การลงทุนเวลาของคุณ ข้อมูลของคุณจะได้รับการชื่นชมมากขึ้นสำหรับคำถามใหม่ ๆ !
Carsten
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.