Nhập số nguyên để định dạng: Phút Giây và Sao (% giây). (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

ngodany135

Thành viên thường trực
Tham gia
1/12/10
Bài viết
346
Được thích
522
Nghề nghiệp
GIÁO VIÊN
Nhập số nguyên để định dạng: Phút Giây và Sau (% giây).

Giả sử mình nhập số 450 thì định dạng được là 4 phút 50 giây.Chắc các bác biết cái đồng hồ thể thao trong giải đấu điền kinh. Để phân biệt được vận động viên thắng bại là nhờ vào số sau. VD như đồng hồ hiển thị như vầy: 4:50:98 thì hiểu được là ( bốn phút năm mươi giây chín mươi tám sau).
+ Theo qui ước 60 giây là 1 phút.
+ 100 sau là 1 giây.
Vậy để nhập máy cho nhanh mà không phải định dạng theo các kiểu định dạng của máy tính có sẳn. mà mình nhập là 45098. Vậy định dạng thế nào để cho máy hiểu được như ý muốn là 4:50:98để hiểu được là (bốn phút năm mươi giây chín mươi tám sau). Rắc rối các vụ sau. Mong các bác gỡ rối dùm. Xin chân thành cảm ơn.
 
Lần chỉnh sửa cuối:
Chắc nó hỏng hiểu đâu!
VD: số là: 111
Nó hiểu sao ta? 1:1:1
Hay là: 11:1
Hay là: 0:1:11
Hay là: ...
Má ơi, mình còn điên cái đầu huống chi là máy???

Chịu khó gõ bằng tay đi!
 
-Nếu mình nhớ không nhầm thì sao chứ không phải sau là đơn vị đo thời gian bằng 1/100 giây.
-Muốn định dạng một số nguyên thành đơn vị thời gian thì phải quy ước số chữ số khi nhập từng đơn vị.
 
Chắc nó hỏng hiểu đâu!
VD: số là: 111
Nó hiểu sao ta? 1:1:1
Hay là: 11:1
Hay là: 0:1:11
Hay là: ...
Má ơi, mình còn điên cái đầu huống chi là máy???

Chịu khó gõ bằng tay đi!
Thì đó, hehe, nhứt đầu thật, Vậy mấy tay làm trọng tài thư ký chơi cái máy tính xách tay tổ bố trước mắt làm sao ta. Chẳng lẽ nhập số nguyên luôn.
 
-Nếu mình nhớ không nhầm thì sao chứ không phải sau là đơn vị đo thời gian bằng 1/100 giây.
-Muốn định dạng một số nguyên thành đơn vị thời gian thì phải quy ước số chữ số khi nhập từng đơn vị.
Bạn có thông tin về vấn đề này không để mình hiểu thêm. Cảm ơn bạn trước.
 
Thì đó, hehe, nhứt đầu thật, Vậy mấy tay làm trọng tài thư ký chơi cái máy tính xách tay tổ bố trước mắt làm sao ta. Chẳng lẽ nhập số nguyên luôn.

Làm gì mà nhập chứ! Gắn cái đồng hồ thời gian với cái máy, hoặc làm cái Timer kiểu của Giải pháp Excel vào, cứ vào trái nào là bấm nút cái kịt đến đó là xong chứ có gì đâu!
 
Anh có thể nói thêm về làm cái Timer kiểu của Giải pháp Excel để em áp dụng bấm cái kịt. mà đỡ tốn thời gian. Cảm ơn anh
 
Anh có thể nói thêm về làm cái Timer kiểu của Giải pháp Excel để em áp dụng bấm cái kịt. mà đỡ tốn thời gian. Cảm ơn anh

Thật ra mà nói nếu dùng Form làm Timer thì mình mò cả ngày, nhưng bạn xem thử bài này của Thầy ndu xem sao, có thể cải tiến từ bài này đấy:
http://www.giaiphapexcel.com/forum/...ng-hồ-đếm-ngược-trên-form&p=284982#post284982

Nhưng nếu áp dụng vào Now thay cho đếm ngược thì có lẽ OK.
 
Cho hỏi thêm, bạn nhập vào giờ như thế nào? Thời gian tiến hay thời gian ngược? Mốc giờ ra sao?
 
Cảm ơn anh, như vậy thì cũng được, tuy nhiên có 2 vấn đề xảy ra:
1. Bấm đồng hồ như vậy đôi khi thiếu chính xác.
2. Chỉ bấm đồng hồ chạy cho 1 vận động viên thôi. VD nhiều vận động viên chắc mình bấm không kịp. Dẫu sao em cũng giải quyết được mục đích của em rồi. Một lần nữa cảm ơn anh rất nhiều.
 
Cảm ơn anh, như vậy thì cũng được, tuy nhiên có 2 vấn đề xảy ra:
1. Bấm đồng hồ như vậy đôi khi thiếu chính xác.
2. Chỉ bấm đồng hồ chạy cho 1 vận động viên thôi. VD nhiều vận động viên chắc mình bấm không kịp. Dẫu sao em cũng giải quyết được mục đích của em rồi. Một lần nữa cảm ơn anh rất nhiều.

Đây là File điều chỉnh theo File của Thầy NDU, bạn xem và cải tiến thêm nhé!
 

File đính kèm

Đây là File điều chỉnh theo File của Thầy NDU, bạn xem và cải tiến thêm nhé!
Thêm 2 đoạn code này vào UserForm nữa thì xem như.. ngon lành:
PHP:
Private PosX As Double, PosY As Double
Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  PosX = X: PosY = Y
End Sub
PHP:
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  Me.Left = Me.Left - (Button > 0) * (X - PosX)
  Me.Top = Me.Top - (Button > 0) * (Y - PosY)
End Sub
Ẹc... Ẹc...
 
Bây giờ như vầy nha các bác. Cho cái đồng hồ chạy theo định dạng kiểu này được không các bác ##'##''##''' nghĩa là (01'12''98'''). Làm nảy giờ mà chưa ra kết quả mong muốn. Chân thành cảm ơn nhiều.
Nóng lòng qúa cho hỏi thêm, xin đừng phiền.
 
Lần chỉnh sửa cuối:
Bây giờ như vầy nha các bác. Cho cái đồng hồ chạy theo định dạng kiểu này được không các bác ##'##''##''' nghĩa là (01'12''98'''). Làm nảy giờ mà chưa ra kết quả mong muốn. Chân thành cảm ơn nhiều.
Nóng lòng qúa cho hỏi thêm, xin đừng phiền.
Hàm TimeProc sửa vầy là được:
Mã:
Function TimeProc()
  On Error Resume Next
  With UserForm1
    iT = iT + 1
    ms = (100 + (iT Mod 100)) Mod 100
    If ms = 99 Then Tmp = Tmp + TimeValue("00:00:01")
    [B].Label1.Caption = Format(Tmp, "mm""'"" ss""''") & Format(ms, " 00""'''""")[/B]
  End With
End Function
Cũng chỉ sửa có 1 đoạn format thôi mà (dòng tô đậm ấy)
---------------------
Tôi cũng vừa thêm vào 2 đoạn code ở trên với mục địch giúp bạn có thể dùng chuột "kéo" UserForm đi được
 

File đính kèm

Lần chỉnh sửa cuối:
Hàm TimeProc sửa vầy là được:
Mã:
Function TimeProc()
  On Error Resume Next
  With UserForm1
    iT = iT + 1
    ms = (100 + (iT Mod 100)) Mod 100
    If ms = 99 Then Tmp = Tmp + TimeValue("00:00:01")
    [B].Label1.Caption = Format(Tmp, "mm""'"" ss""''") & Format(ms, " 00""'''""")[/B]
  End With
End Function
Cũng chỉ sửa có 1 đoạn format thôi mà (dòng tô đậm ấy)

Coi chừng nha Thầy, hình như nó bị lên 12 phút đó!

Phải sửa như vầy ạ:

Mã:
Function TimeProc()
  On Error Resume Next
  Dim TG As String
  With UserForm1
    iT = iT + 1
    ms = (100 + (iT Mod 100)) Mod 100
    If ms = 99 Then Tmp = Tmp + TimeValue("00:00:01")
    [COLOR=#ff0000][B]TG = Format(Tmp, "hh:mm'ss''") & Format(ms, "00'''")[/B][/COLOR]
    [COLOR=#0000ff][B].Label1.Caption = Replace(TG, "00:", "")[/B][/COLOR]
  End With
End Function
 
Lần chỉnh sửa cuối:
Coi chừng nha Thầy, hình như nó bị lên 12 phút đó!

Phải sửa như vầy ạ:

Mã:
Function TimeProc()
  On Error Resume Next
  Dim TG As String
  With UserForm1
    iT = iT + 1
    ms = (100 + (iT Mod 100)) Mod 100
    If ms = 99 Then Tmp = Tmp + TimeValue("00:00:01")
    [COLOR=#ff0000][B]TG = Format(Tmp, "hh:mm'ss''") & Format(ms, "00'''")[/B][/COLOR]
    [COLOR=#0000ff][B].Label1.Caption = Replace(TG, "00:", "")[/B][/COLOR]
  End With
End Function
Sorry! Tôi quên vụ "mm" nằm 1 mình nó bị hiểu là THÁNG thay vì PHÚT
Nhưng dùng Replace như thế không ổn
Tôi sửa thành vầy cho chắc:
PHP:
Function TimeProc()
  On Error Resume Next
  With UserForm1
    iT = iT + 1
    ms = (100 + (iT Mod 100)) Mod 100
    If ms = 99 Then Tmp = Tmp + TimeValue("00:00:01")
    .Label1.Caption = Replace(Mid(Format(Tmp, "hh:mm:ss"), 4, 5), ":", "' ") & Format(ms, "'' 00""'''""")
  End With
End Function
 

File đính kèm

Hàm TimeProc sửa vầy là được:
Mã:
Function TimeProc()
  On Error Resume Next
  With UserForm1
    iT = iT + 1
    ms = (100 + (iT Mod 100)) Mod 100
    If ms = 99 Then Tmp = Tmp + TimeValue("00:00:01")
    [B].Label1.Caption = Format(Tmp, "mm""'"" ss""''") & Format(ms, " 00""'''""")[/B]
  End With
End Function
Cũng chỉ sửa có 1 đoạn format thôi mà (dòng tô đậm ấy)
---------------------
Tôi cũng vừa thêm vào 2 đoạn code ở trên với mục địch giúp bạn có thể dùng chuột "kéo" UserForm đi được
Lại cảm phiền thêm lần nữa. Em cứ nghỉ là đồng hồ định dạng và chạy như thế để xếp hạng chắc có lẽ được, nhưng cuối cùng lại xếp hạng chưa được. Bây giờ có cách nào đồng hồ định dạng như vậy mà xếp hạng được luôn không sư phụ.
 
Sorry! Tôi quên vụ "mm" nằm 1 mình nó bị hiểu là THÁNG thay vì PHÚT
Nhưng dùng Replace như thế không ổn
Tôi sửa thành vầy cho chắc:
PHP:
Function TimeProc()
  On Error Resume Next
  With UserForm1
    iT = iT + 1
    ms = (100 + (iT Mod 100)) Mod 100
    If ms = 99 Then Tmp = Tmp + TimeValue("00:00:01")
    .Label1.Caption = Replace(Mid(Format(Tmp, "hh:mm:ss"), 4, 5), ":", "' ") & Format(ms, "'' 00""'''""")
  End With
End Function

Riêng vấn đề Format(ms, "'' 00""'''""", Thầy làm như vầy sẽ ngắn gọn hơn: Format(ms, "'' 00'''"
 
Lại cảm phiền thêm lần nữa. Em cứ nghỉ là đồng hồ định dạng và chạy như thế để xếp hạng chắc có lẽ được, nhưng cuối cùng lại xếp hạng chưa được. Bây giờ có cách nào đồng hồ định dạng như vậy mà xếp hạng được luôn không sư phụ.

Ủa, tôi cứ nghĩ là bấm thằng nào trước thì thằng đó là số 1 và cứ thế n+1 thôi có gì đâu mà phải xếp hạng nữa???
 
Web KT

Bài viết mới nhất

Back
Top Bottom