Tôi đang cố hiển thị mili giây trong macro Excel. Tôi có một cột số nguyên chỉ đơn giản là dấu thời gian tính bằng mili giây (ví dụ: 28095200 là 7: 48: 15.200 am) và tôi muốn tạo cột mới bên cạnh cột giữ trung bình đang chạy và hiển thị thời gian bằng "hh: mm : ss.000 "định dạng. Tôi đã thử nhiều tuyến đường khác nhau, nhưng tôi chỉ đơn giản là không thể nhận được mili giây mà không gây ra những điều kỳ lạ xảy ra.Hiển thị mili giây trong Excel
Dưới đây là những gì tôi có ngay bây giờ:
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 với một số lý do, điều này chỉ hiển thị "mm: ss.0" trong tế bào. 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 số giờ bị thiếu trong ô?
Ngoài ra, một điều kỳ lạ khác xảy ra là nếu tôi thay đổi dòng cuối cùng thành Strings.Format(ms, "#000.")
, thì tôi nhận được "hh: mm: ss.000". Đó là những gì tôi muốn, không phải là khoảng thời gian thêm.
Yay! Nhưng có cách nào tôi có thể làm điều đó trong mã? Bây giờ mỗi khi tôi chạy macro, định dạng đượ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 '3' trong hàm' Round'. Điều này đảm bảo bạn nhận được 3 chữ số thập phân thay vì chỉ 2. –
Ah! Bạn đúng rồi. Tôi chỉ cần mở rộng cột. Ngoài ra, tôi chỉ muốn có độ 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ì đã giúp đỡ! – Evelyn