So sánh giá trị TextBox với Cells.value (1 người xem)

Liên hệ QC

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

z0MinhChau0z

Thành viên mới
Tham gia
4/7/12
Bài viết
6
Được thích
0
Xin mọi người giúp đỡ giùm mình vấn đề này với:
- sheet1.cells(A1) & cells(A2) chứa 2 giá trị để so sánh
- userform nhập 2 textbox,
- Nếu mình chọn giá trị là ký tự (text) thì kết quả đúng, nhưng nếu gán giá trị textbox là number thì kết quả lại không đúng mặc dù tại cells(A1) và cells(A2) cũng là number.
- Mong người giải thích tại sao lại như vậy?
Cảm ơn tất cả mọi người.
 

File đính kèm

Thử dùng thủ tục này xem:

PHP:
Private Sub OK_Click()

    If Me.TBx1.Value = Sheet1.Cells(1, 1).Value And Me.TBx2.Value = Sheet1.Cells(2, 1).Value _
            Or Val(Me.TBx1.Value) = Sheet1.Cells(1, 1).Value And Val(Me.TBx2.Value) = Sheet1.Cells(2, 1).Value Then
    
            Unload Me
            MsgBox "OK"
    Else
            Me.TBx1.SetFocus
            Me.TBx1.Value = ""
            Me.TBx2.Value = ""
            MsgBox "Not OK"
            Exit Sub
    End If
    
End Sub
 
Upvote 0
Tôi nghĩ sửa lại như vầy đúng hơn:

PHP:
Private Sub OK_Click()
    
    Dim X As String
    Dim Y As String
    
    X = Sheet1.Cells(1, 1).Value
    Y = Sheet1.Cells(2, 1).Value
    
    If Me.TBx1.Value = X And Me.TBx2.Value = Y Then
            MsgBox "OK"
            Unload Me
    Else
            MsgBox "Not OK"
            Me.TBx1.Value = ""
            Me.TBx2.Value = ""
            Me.TBx1.SetFocus
    End If
    
End Sub

Giá trị trong TextBox luôn ở dạng String vì thế nếu muốn lấy giá trị là Number thì ta phải thêm hàm VAL [ Val(TextBox) ]
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi nghĩ sửa lại như vầy đúng hơn:

PHP:
Private Sub OK_Click()
    
    Dim X As String
    Dim Y As String
    
    X = Sheet1.Cells(1, 1).Value
    Y = Sheet1.Cells(2, 1).Value
    
    If Me.TBx1.Value = X And Me.TBx2.Value = Y Then
            MsgBox "OK"
            Unload Me
    Else
            MsgBox "Not OK"
            Me.TBx1.Value = ""
            Me.TBx2.Value = ""
            Me.TBx1.SetFocus
    End If
    
End Sub

Giá trị trong TextBox luôn ở dạng String vì thế nếu muốn lấy giá trị là Number thì ta phải thêm hàm VAL [ Val(TextBox) ]
Code cũ của tác giả, chổ nào là .Value ta thay thành .Text là xong, khỏi cần phải sửa thêm gì nữa cả
 
Upvote 0
Mình đã sửa được đoạn code và cũng hiểu thêm được 1 chút về textbox.Cảm ơn tất cả mọi người.
 
Upvote 0
Web KT

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

Back
Top Bottom