Hôm nay, Tinvanphong.com gởi đến bạn thủ thuật cho phép nhập liệu số trong TEXTBOX. Để đảm bảo rằng, đầu vào của bạn luôn luôn đúng. Nếu bạn khá thoải mái trong vấn đề nhập liệu với Excel, Nhưng đối với nhập liệu UserForm, nó dễ sinh ra lỗi trong quá trình nhập liệu đây .Để đảm bảo sử dụng đúng bảng tính của mình.
![Cho phép nhập liệu số trong TEXTBOX 1 Cho phép nhập liệu số trong TEXTBOX](https://tinvanphong.com/wp-content/uploads/2021/06/NHAPLIEUNANGCAO.jpg)
Tuy nhiên, chỉ đặt một số TextBox trên một UserForm để người dùng nhập dữ liệu là không đủ. Ví dụ, các TextBox có thể chỉ lấy dữ liệu số chứ không phải các chuỗi Văn bản. Để làm điều này, bạn có thể xem 1 số vị dụ dưới đây.
Cho phép nhập liệu số trong TEXTBOX
I. CODE 1
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If (KeyAscii > 47 And KeyAscii < 58) Then
KeyAscii = KeyAscii
Else
KeyAscii = 0
End If
End Sub
Keypress : Sự kiện KeyPress xảy ra khi người dùng nhấn phím tạo ra ký tự có thể đánh máy
![Cho phép nhập liệu số trong TEXTBOX 2 Cho phép nhập liệu số trong TEXTBOX](https://tinvanphong.com/wp-content/uploads/2021/06/VBA-ASC-code-1-1.png)
KeyAscii là Dec ID trong ảnh , Trong đoạn code trên Nếu ID nhập vào mà lớn hơn 47 và nhỏ hơn 58 thì. Với điều kiện đúng thì nó sẻ trả về dữ liệu , và ngược lại trả về rỗng
Nhưng đối với code trên chỉ là cách tàm thời, khi chúng ta copy 1 dạng văn bản vào vẫn hiển thị, trong khi chung ta đã chặn điều kiện nhập liệu chỉ là số, nếu bạn thấy cách này không an toàn đối với USERFORM thì hay xem hình dưới
![Cho phép nhập liệu số trong TEXTBOX 3 Cho phép nhập liệu số trong TEXTBOX](https://tinvanphong.com/wp-content/uploads/2021/06/KHONGCHONHAPSO.jpg)
II.CODE 2
Cách này sẽ giúp bạn chặn được hoàn toàn các vấn đề phát sinh trong nhập liệu, mời bạn xem qua code ở dưới.
Dim LastPosition As Long
Private Sub TextBox1_Change()
Static LastText As String
Static SecondTime As Boolean
If Not SecondTime Then
With TextBox1
If .Text Like “*[!0-9]*” Then
Beep
SecondTime = True
.Text = LastText
.SelStart = LastPosition
Else
LastText = .Text
End If
End With
End If
SecondTime = False
End Sub
Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
With TextBox1
LastPosition = .SelStart
‘Place any other MouseDown event code here
End With
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
With TextBox1
LastPosition = .SelStart
‘Place any other KeyPress checking code here
End With
End Sub
MouseDown : sự kiện này là khi ban nhả con chuột ra và không đè gì nữa.
CácSelStart quy định cụ thể ,xác định điểm bắt đầu của văn bản đã chọn hoặc vị trí của điểm chèn nếu không có văn bản được chọn. Đọc / ghi Số nguyên .
Like chính xác là một hàm trả về giá trị True hoặc False. Điều này có nghĩa là, nếu đúng, bạn sẽ nhận được giá trị True, còn không, chắc chắn là giá trị False. chẳng hạn như vậy.
III.DEMO
Vậy là Tinvanphong.com đã giới thiệu đến các bạn 2 ví dụ trên, có thế giúp ích cho bạn. Hy vọng với nội dung bài viết này, nó sẽ giúp các bạn làm việc hiệu quả hơn, cập nhập dữ liệu cũng sẽ nhanh chóng và chính xác hơn. Chúc các bạn thực hiện thành công.
Tham khảo thêm các bài viết bên dưới.
-Phần mềm xuất nhập tồn bằng Excel miễn phí 2021
–Zoom Picture Frame In Userform VBA EXCEL 2021
–Hướng dẫn đăng nhập Office 365 A5 và sử dụng Office 365 A5
–Bài 18: Hàm LOGIC trong Excel (AND, OR, XOR, NOT) Excel 2019
–Bài 16: Hàm đếm trong excel và tính tổng Phần 1- Họ hàm COUNT
–Cách thay đổi biểu tượng chuột máy tính trên màn hình Desktop đơn giản