gần tới rồi bạn ơi:
1- chỉ còn sót Ech = KEyc
2- cái này không sai nhưng có thể rút gọn lại tí:
If Pgku1 <= Pcku1 Then
... 1
End If
If Pgku1 > Pcku1 Then
... 2
End If
Rút gọn thành:
If Pgku1 <= Pcku1 Then
... 1
Else
... 2
End If
Vì Pgku1 <= Pcku1 và Pgku1 > Pcku1 là phủ định của nhau hoàn toàn.
Nếu vẫn còn lỗi, bạn thêm cái này để kiểm tra, sau đó xoá đi:
Case Else
x = IIf( Ech > KEyc , "Ech > KEyc", IIf(Ech = KEyc , "Ech = KEyc ", "Ech < KEyc "))
y= IIf(Pgku1 < Pcku1 , "Pgku1 < Pcku1 " , IIf(Pgku1 = Pcku1 , "Pgku1 = Pcku1 "; "Pgku1 > Pcku1 "))
z= IIf(Tgtr < Tctr ,"Tgtr < Tctr " , IIf(Tgtr = Tctr , "Tgtr = Tctr ", "Tgtr > Tctr "))
TB = TB & Chr(10) & x & Chr(10) & y &Chr(10) & z
Mục đích là để biết thông báo rỗng rơi vào trường hợp nào.
Cũng có cách khác kiểm tra dễ nhưng giải thích hơi dài:
Trong cửa sổ code, click chuột đánh dấu từng dòng lệnh trên thanh dọc bên trái của code, đừng đánh dấu dòng if, end if, select case, end select.
Dòng nào đánh dấu sẽ bị tô màu đỏ.
Chạy code
Khi code Pause, dòng lệnh nào phải thực hiện, trước khi thực hiện sẽ bị tô màu vàng.
Dòng lệnh nào không thực hiện sẽ không bị Pause.
Vậy xem dòng bị tô màu vàng nằm trong trường hợp nào, kiểm tra.
Nếu code không bị Pause lần nào, là sót trường hợp.
TB: Bạn cũng chịu khó nhỉ, xài code của TigerTiger, sửa <= theo đk của bạn là OK mà.