Kiểm tra code bẫy lỗi

  • Thread starter Thread starter kan
  • Ngày gửi Ngày gửi
Liên hệ QC

kan

Thành viên mới
Tham gia
26/1/08
Bài viết
47
Được thích
6
Nhờ các thành viên kiểm tra đoạn code:
TextBox4 chỉ được nhận giá trị phần trăm (%), sao vẫn bị lỗi

Private Sub TextBox4_Change()
If TextBox4 = vbNullString Then Exit Sub
If Not IsPercent(TextBox4) Then
TextBox4 = vbNullString
End If
End Sub
 
Nhờ các thành viên kiểm tra đoạn code:
TextBox4 chỉ được nhận giá trị phần trăm (%), sao vẫn bị lỗi

Private Sub TextBox4_Change()
If TextBox4 = vbNullString Then Exit Sub
If Not IsPercent(TextBox4) Then
TextBox4 = vbNullString
End If
End Sub
Hàm IsPercent ở đâu ra vậy bạn
 
Upvote 0
Vậy phải xử lý như thế nào vậy ndu96081631 ?
 
Upvote 0
Vậy phải xử lý như thế nào vậy ndu96081631 ?
Chưa hiểu chổ:
TextBox4 chỉ được nhận giá trị phần trăm (%)
Nghĩa là sao? Chẳng lẽ buộc phải gõ ký tự "%" vào mới được sao? Mà cái vụ % này là do Format mà ra, bạn cần gì phải gõ?
Thêm nữa, cho code vào sự kiện TextBox4_Change() là sai hoàn toàn ---> Cứ cho là trong VBA có hàm IsPercent đi, khi bạn vừa gõ gì đó vào, code lập tức hoạt động và sẽ xóa sạch những gì vừa gõ
Bạn muốn 20% thì cứ gõ số 20 bình thường đi, xong, khi tính toán ta sẽ tính lại, có sao đâu?
 
Upvote 0
Đối với 1 ô nhập dữ liệu số bạn có thể dùng code sau:

Mã:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 8 Then Exit Sub
If InStr(1, TextBox1, ".") = 0 And KeyCode = 190 Then Exit Sub
If Len(TextBox1) = 0 And KeyCode = 189 Then Exit Sub
If InStr(1, "1234567890", Chr$(KeyCode)) = 0 Then KeyCode = 0
End Sub

Đây là điều kiện:
-Nếu là số thì chấp nhận
-Nếu ký tự đầu tiên trong chuỗi là "." thì chấp nhận
-Chỉ gõ dấu "-" khi bắt đầu.
Còn cái vụ % thì là định dạng thôi
 
Lần chỉnh sửa cuối:
Upvote 0
1. ý mình là nhập vào dạng số nhưng nó vẫn hiện theo %. Ví dụ: nhập số 20 --->textbox sẽ hiện 20%, chắc cái này dùng hàm format rồi.
2. Mình muốn Print cả cái form, cần gán câu lệnh nào vào commanButton ?
 
Upvote 0
Bạn tham khảo code sau:

1/Format:
Mã:
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1 = Format(TextBox1 * 0.01, "0.00%")
End Sub

2/In Form:

Mã:
Private Sub CommandButton1_Click()
Me.PrintForm
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom