
Lược dịch từ http://www.cpearson.com/excel/TextBox.htm
Nếu bạn đang dùng VBA Userform, hầu như bạn có dùng TextBox control và trong nhiều trường hợp bạn muốn ngăn chặn hay chỉ cho phép người sử dụng nhập vào một số từ hay ký từ quy định mà thôi như bạn chỉ muốn ngừơi sử dụng nhập vào số mà thôi. Thật không may, không có một thuộc tính nào giúp ta làm việc này. Tuy nhiên chúng ta có cách đơn giản để thực hiện điều này bằng thủ tục sự kiện KeyPress của TextBox.
Ví dụ, giả sử ta có textbox tên TextBox1. Đọan mã sau sẽ chỉ cho phép chúng ta nhập vào số từ 0-9, dấu "." và "-"
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case Asc("0") To Asc("9"), Asc("-")
Case Asc(".")
If InStr(1, Me.TextBox1.Text, ".") > 0 Then
KeyAscii = 0
End If
Case Else
KeyAscii = 0
End Select
End Sub
Nếu muốn thêm các ký tự khác thì bạn đưa thêm vào "Select ...Case"
Lê Văn Duyệt
Nếu bạn đang dùng VBA Userform, hầu như bạn có dùng TextBox control và trong nhiều trường hợp bạn muốn ngăn chặn hay chỉ cho phép người sử dụng nhập vào một số từ hay ký từ quy định mà thôi như bạn chỉ muốn ngừơi sử dụng nhập vào số mà thôi. Thật không may, không có một thuộc tính nào giúp ta làm việc này. Tuy nhiên chúng ta có cách đơn giản để thực hiện điều này bằng thủ tục sự kiện KeyPress của TextBox.
Ví dụ, giả sử ta có textbox tên TextBox1. Đọan mã sau sẽ chỉ cho phép chúng ta nhập vào số từ 0-9, dấu "." và "-"
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case Asc("0") To Asc("9"), Asc("-")
Case Asc(".")
If InStr(1, Me.TextBox1.Text, ".") > 0 Then
KeyAscii = 0
End If
Case Else
KeyAscii = 0
End Select
End Sub
Nếu muốn thêm các ký tự khác thì bạn đưa thêm vào "Select ...Case"
Lê Văn Duyệt