Hiển thị mili giây trong Excel


122

Tôi đang cố gắng hiển thị mili giây trong macro Excel. Tôi có một cột số nguyên là dấu thời gian tính bằng mili giây (ví dụ: 28095200 là 7: 48: 15.200 sáng) và tôi muốn tạo một cột mới bên cạnh nó để giữ mức trung bình và hiển thị thời gian ở hh:mm:ss.000định dạng.

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

Điều này chỉ hiển thị "mm: ss.0" trong ô. Tuy nhiên, khi tôi nhấp vào ô, nó hiển thị "hh: mm: ss" trong thanh công thức. Tại sao thiếu giờ? Làm cách nào để hiển thị giờ, phút, giây và mili giây?

Câu trả lời:


217

Nhấp chuột phải vào ÔB1 và chọn Định dạng Ô . Trong Tùy chỉnh , hãy đặt nội dung sau vào hộp văn bản có nhãn Loại :

[h]:mm:ss.000 

Để đặt điều này trong mã, bạn có thể làm như sau:

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

Điều đó sẽ cung cấp cho bạn những gì bạn đang tìm kiếm.

LƯU Ý: Các trường được định dạng đặc biệt thường yêu cầu độ rộng của cột phải đủ rộng cho toàn bộ nội dung của văn bản được định dạng. Nếu không, văn bản sẽ hiển thị là ######.


Yay! Nhưng có cách nào tôi có thể làm điều đó trong mã không? Bây giờ mỗi khi tôi chạy macro, định dạng sẽ được đặt lại. (vì tôi đang xóa và tạo lại trang tính trong macro.) Cel.EntireRow.NumberFormat = "[h]: mm: ss.000" Nhưng điều đó chỉ cho tôi "######" trong ô.
Evelyn

@Evelyn - 3 điều: 1) Tôi đã thêm mã bạn cần để đặt định dạng số. 2) Đảm bảo cột của bạn đủ rộng để vừa với toàn bộ văn bản được định dạng. Xem ghi chú của tôi ở trên. 3) Xem câu trả lời của Gilbert và lưu ý việc sử dụng 3trong Roundhàm. Điều này đảm bảo bạn nhận được 3 chữ số thập phân thay vì chỉ 2.
Ben McCormack

Ah! Bạn đúng rồi. Tôi chỉ cần mở rộng cột. Ngoài ra, tôi chỉ muốn độ chính xác là 2 trong trường hợp này. Tôi chỉ muốn nó được định dạng cho 3. Cảm ơn rất nhiều vì sự giúp đỡ!
Evelyn

25
Tôi vừa phát hiện ra điều sau và muốn chia sẻ nó trong trường hợp những người khác cũng gặp phải vấn đề tương tự: Nếu Windows / Excel của bạn được định cấu hình cho Đức, thì .phải thay thế bằng ,, giống như đối với các chữ số thập phân. Nếu không, Excel sẽ phàn nàn rằng đó không phải là định dạng hợp lệ. Vì vậy, nó phải được[h]:mm:ss,000
gehho

6

Tôi đã phát hiện ra trong Excel 2007, nếu kết quả là Bảng từ một truy vấn được nhúng, thì ss.000 không hoạt động. Tôi có thể dán kết quả truy vấn (từ SQL Server Management Studio) và định dạng thời gian tốt. Nhưng khi tôi nhúng truy vấn dưới dạng Kết nối dữ liệu trong Excel, định dạng luôn cho .000 dưới dạng mili giây.


4

Tôi đã làm điều này trong Excel 2000.

Câu lệnh này phải là: ms = Round(temp - Int(temp), 3) * 1000

Bạn cần tạo một định dạng tùy chỉnh cho ô kết quả của [h]:mm:ss.000


-3

Đầu tiên biểu thị kỷ nguyên của thời gian mili giây dưới dạng ngày (thường là 1/1/1970), sau đó thêm thời gian mili giây của bạn chia cho số mili giây trong một ngày (86400000):

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

Nếu ô của bạn được định dạng đúng, bạn sẽ thấy ngày / giờ có thể đọc được.


Chào George và chào mừng! Thật không may, OP dường như đặc biệt yêu cầu một cách để đạt được rằng ô được "định dạng đúng". Cách tiếp cận ban đầu của họ đã bao gồm phần bạn đang giải quyết: việc chuyển đổi dấu thời gian mili giây thành giá trị ngày giờ có thể định dạng. Ngoài ra, với sáu năm, đó là một câu hỏi khá cũ khi bạn đầu tư thời gian vào. Đầu vào của bạn sẽ được đánh giá cao hơn đối với các câu hỏi mới hơn!
Carsten
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.