Kiểm tra giá trị nhập vào ô

Liên hệ QC

mandala

Thành viên chính thức
Tham gia
2/4/15
Bài viết
51
Được thích
9
Xin chào tất cả mọi người.
Em có bài toán kiểm tra giá trị nhập vào 1 ô
code em để ở dưới nhưng mà em cảm thấy nó không được hay cho lắm. Nhờ anh chị giúp em đoạn code kiểm tra giá trị nhập vào của ô ạ
( có thể gôp code kiểm tra giá trị trống và kiểu chữ luôn không ạ)
Cụ thể: Giá trị được nhập vào ô B4
yêu cầu:
Nếu B4 trống (rỗng) thông báo " hãy nhập giá trị cho B4"
Nếu B4 nhập giá trị là kiểu chữ thông báo " Giá trị nhập vào phải là kiểu sô"
Nêu B4 nhâp giá trị số thông báo "Ban đã nhập đúng"
Em xin cảm ơn!
Sub kiemtra()
Dim a As Integer
a = Range("P1").Value
a1 = Range("P2").Value

Range("P1").Formula = "=ISBLANK(B4)"
Range("P2").Formula = "=ISNUMBER(B4)"
If a = True Then
MsgBox "Hay nhap gia tri cho B4"

Else
'MsgBox "OK"
If a1 = True Then
MsgBox "Ban da nhap dung"
Else
MsgBox "Giá tri nhap vao phai la kieu so"
End If
End If
End Sub
 

File đính kèm

  • kiemtra.xlsm
    18.2 KB · Đọc: 5
Sub kiemtra()
Dim a As Integer

If Cells(4, 2) = "" Then
MsgBox "Hay nhap gia tri cho B4"
Else
If IsNumeric(Cells(4, 2)) = True Then
MsgBox "Ban da nhap dung"
Else
MsgBox "Gi?tri nhap vao phai la kieu so"
End If
End If
End Sub
 
Upvote 0
Bạn nên dùng Bắt sự kiện Worksheet Change:
PHP:
'Tìm MsgBox bằng Popup của Shell để hiển thị tiếng Việt
Private Sub Worksheet_Change(ByVal Target As Range)
  On Error GoTo EnableE
  Dim RNG As Object: Set RNG = Target
  Application.EnableEvents = False
  'Đoạn Comment: Nếu B4 chưa được nhập thì bắt buộc nhập'
  'If [B4].Value = vbNullString Then
    '[B4].Select
    'MsgBox "Please Input cells B4"
  'End If
  If RNG.Address = [B4].Address Then
    If [B4].Value = vbNullString Then
      [B4].Select
      MsgBox "Please Input cells B4"
    ElseIf IsNumeric([B4].Value & 1) Then
      MsgBox "Very Good! Thank You!"
    ElseIf Not IsNumeric([B4].Value & 1) Then
      [B4].ClearContents
      [B4].Select
      MsgBox "Oh No! Please Input a Number"
    End If
  End If
EnableE:
  Application.EnableEvents = True
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Dùng hàm Isnumeric kiểm tra kiểu dữ liệu số không biết có được không o_O
Dạ lúc được, lúc không! :p
Vậy thì dùng bẫy lỗi:
PHP:
Dim IsDigit As Boolean, ConvNum&
On Error Resume Next
ConvNum = [B4].Value * 1
If Err.Number = 0 Then  IsDigit = True
On Error GoTo 0

'Sửa thành: ElseIf  IsDigit Then '<---- ElseIf IsNumeric([B4].Value) Then
 
Lần chỉnh sửa cuối:
Upvote 0
Vậy thì dùng bẫy lỗi:
PHP:
Dim IsDigit As Boolean, ConvNum&
On Error Resume Next
ConvNum = [B4].Value * 1
If Err.Number = 0 Then  IsDigit = True
On Error GoTo 0

'Sửa thành: ElseIf  IsDigit Then '<---- ElseIf IsNumeric([B4].Value) Then
Hồi mới bập bẹ VBA mình cũng chơi xả láng kiểu nầy, sau thấy kỳ kỳ nên chịu khó mở help và chơi kiểu khác
 
Upvote 0
Hồi mới bập bẹ VBA mình cũng chơi xả láng kiểu nầy, sau thấy kỳ kỳ nên chịu khó mở help và chơi kiểu khác
Không biết Vì sao IsNumeric không kiểm tra được số 0, anh có thể chụp lỗi đó không
Nếu thật có lỗi như vậy thì đành kiểm kiểu "úc" dưới đây
Mã:
IsNumeric([B4].Value & 1)
 
Upvote 0
Không biết Vì sao IsNumeric không kiểm tra được số 0, anh có thể chụp lỗi đó không
Nếu thật có lỗi như vậy thì đành kiểm kiểu "úc" dưới đây
Mã:
IsNumeric([B4].Value & 1)

Yêu cầu của chủ topi là " Giá trị nhập vào phải là kiểu sô" , còn nhân chia là việc khác
 
Upvote 0
Web KT
Back
Top Bottom