Kiểm tra Textbox có phải là số hay ký tự (1 người xem)

Liên hệ QC

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

minhtuan55

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
23/3/16
Bài viết
705
Được thích
52
Chào cả nhà GPE
em cần 1 lệnh để xác định giá trị trong Textbox ( trong Form ) là số ( cộng trừ nhân chia OK ) nếu là Số là True, ngược là False . em có dùng code sau mà VBa không hiểu


If IsNumber(TextBox2.Value) =true Then
 
Thêm cái đoạn code này vào thì VBA nó sẽ hiểu:

Public Function IsNumber(byVal s) As Boolean
IsNumber = IsNumeric(CStr(s))
End Function
 
Upvote 0
Chào cả nhà GPE
em cần 1 lệnh để xác định giá trị trong Textbox ( trong Form ) là số ( cộng trừ nhân chia OK ) nếu là Số là True, ngược là False . em có dùng code sau mà VBa không hiểu


If IsNumber(TextBox2.Value) =true Then

Mã:
Private Sub TextBox1_Change()
    If Not IsNumeric(TextBox1.Value) And TextBox1.Value <> vbNullString Then
         MsgBox "Xin loi, chi duoc nhap so ma thoi."
         TextBox1.Value = vbNullString
    End If
End Sub
 
Upvote 0
Chào cả nhà GPE
em cần 1 lệnh để xác định giá trị trong Textbox ( trong Form ) là số( cộng trừ nhân chia OK )
nếu là Số là True, ngược là False . em có dùng code sau mà VBa không hiểu
Code của anh Hai Lúa Miền Tây, chắc chưa đúng ý chủ thớt, vì em thấy có :
( cộng trừ nhân chia OK )
tức là tính toán được trong TextBox.
Em có thử, nếu gỏ 12+23 trong TextBox thì hiện MsgBox liền.
Vậy có cách nào vẫn tính toán được trong TextBox, mà nếu gỏ chữ là có MsgBox.
Mong anh chỉ giáo.
 
Upvote 0
Bà con nghĩ là tôi đùa à?
Code ở bài #2 là loại code chữa cháy cho project. Ví dụ project lỡ có 100 chỗ gọi hàm IsNumber như trên thì phải tìm đủ 100 để sửa à? Chọt đoạn code chữa cháy vào là xong.

Vậy có cách nào vẫn tính toán được trong TextBox, mà nếu gỏ chữ là có MsgBox.

Dùng hàm Evaluate để tính.
Chỉ cần nhét nó vào cái code hàm bài #2 - code chữa cháy mờ.
 
Upvote 0
Thêm cái đoạn code này vào thì VBA nó sẽ hiểu:

Public Function IsNumber(byVal s) As Boolean
IsNumber = IsNumeric(CStr(s))
End Function
cảm ơn bác . em chưa biết áp dụng code ra làm sao
Form em gồm 2 Textbox và 1 nút bấm . em muốn khi người dùng nhập vào 2 textbox này ( tự do muốn chữ muốn số không quan tâm , copy tào lao chử paste vào cũng được). Nhưng khi em EM click vào nút bấm thì nếu Cộng Trừ Nhân Chia không được thì Hiện lên " Phải nhập là số " ngược là thì hiện lên kết quả phép tính
 

File đính kèm

Upvote 0
TextBox không thể là kí tự hay số được; Nó là 1 đối tượng hay cái gì đại loại gần như thế!
 
Upvote 0
Mong anh VetMini chỉ cách vận dụng code của anh với.
 
Upvote 0
Mong anh VetMini chỉ cách vận dụng code của anh với.

Theo đề từ đầu thì chủ thớt muốn xét 1 giá trị trong cái gì đó. Code của thớt dùng 1 hàm tên là IsNumber để làm chuyện này.
1. Có lẽ do thớt gõ nhầm, nhớ nhầm tên hàm, VBA có hàm IsNumeric chứ khong có IsNumber
2. Nhưng cũng có thể do code này cóp lại ở đâu đó, và ở nơi đó hàm IsNumeric được xác định. Điển hình là trong một module, hoặc trong một addin nào đó.

Vì vậy, trong lúc chờ đợi tìm xem IsNumber ở đâu, tôi mới chỉ cho cách chữa cháy bằng cách viết một hàm trung gian (tiếng trong nghề gọi là wrapper). Chỉ cần đem code hàm này vào project thì tự động các chỗ gọi hàm IsNumber biết nó và khong báo lỗi nữa.
Bao giờ thớt tìm ra cái IsNmber nguyên thuỷ của mình thì thay vào.

Kỹ thuật chữa cháy này hết sức giảm dị.

Điều kiện của bạn ở bài #4 là phải xét cả biểu thức chứ không chỉ riêng số. Để xét biểu thức thì cách dễ nhất là dùng hàm Evaluate và bẫy lỗi.
 
Upvote 0
Cám ơn anh VetMini, đúng là em có dùng hàm Evalute để tính toán.
Mong anh giúp em code "xét cả biểu thức" với.
 
Upvote 0
Web KT

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

Back
Top Bottom