Nhờ xem giúp code kiểm tra điều kiện của biến (1 người xem)

Liên hệ QC

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

hoi_joker

Thành viên mới
Tham gia
14/9/07
Bài viết
41
Được thích
17
Mọi người xem giúp code kiểm tra dk sao không chạy
đk:
1. biến k là số tự nhiên
2. >= 2
3. <= 6
tức là k chỉ chấp nhận các giá trị = 2, 3, 4, 5, 6

mình cũng đã thử một số dk thay cho chỗ chữ đỏ cũng không được
* k - int(k) <> 0
* InStr(1, CStr(k), ".", vbTextCompare) > 0
...
VD: nhập k = 3.5 vẫn chạy vù vù. hic hic


Mã:
Sub check()

Dim k as Long

Do
      k = InputBox("Nhap so luong", "QTTY", "2")
            If Not IsNumeric(k) Or k < 2 Or k > 6 or [COLOR="#FF0000"]k / int(k) <> k \ int (k)[/COLOR] Then
                MsgBox "NHAP SAI! VUI LONG NHAP LAI!", vbCritical, "Thong Bao"
            Else
                 Exit Do
            End If
Loop

Msgbox k

End sub
 
Mọi người xem giúp code kiểm tra dk sao không chạy
đk:
1. biến k là số tự nhiên
2. >= 2
3. <= 6
tức là k chỉ chấp nhận các giá trị = 2, 3, 4, 5, 6

mình cũng đã thử một số dk thay cho chỗ chữ đỏ cũng không được
* k - int(k) <> 0
* InStr(1, CStr(k), ".", vbTextCompare) > 0
...
VD: nhập k = 3.5 vẫn chạy vù vù. hic hic


Mã:
Sub check()

Dim k as Long

Do
      k = InputBox("Nhap so luong", "QTTY", "2")
            If Not IsNumeric(k) Or k < 2 Or k > 6 or [COLOR=#FF0000]k / int(k) <> k \ int (k)[/COLOR] Then
                MsgBox "NHAP SAI! VUI LONG NHAP LAI!", vbCritical, "Thong Bao"
            Else
                 Exit Do
            End If
Loop

Msgbox k

End sub
Thứ nhất: Vì chưa biết k thuộc dạng dữ liệu gì nên không thể Dim k as Long được
Thứ hai: Bạn dùng Application.InputBox thay cho InputBox sẽ hay hơn
Tạm sửa thế này:
Mã:
Sub check()
  Dim k
  Do
    k = Application.InputBox("Nhap so luong", "QTTY", "2", , , , , 1)
    If k = "False" Then Exit Sub
    If k < 2 Or k > 6 Or k <> Int(k) Then
      MsgBox "NHAP SAI! VUI LONG NHAP LAI!", vbCritical, "Thong Bao"
    Else
      Exit Do
    End If
  Loop
  MsgBox k
End Sub
 
Upvote 0

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

Back
Top Bottom