Thắc mắc về điều kì diệu của hàm IF trong VBA (1 người xem)

Liên hệ QC

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

Lighting

Thành viên mới
Tham gia
15/3/07
Bài viết
49
Được thích
14
Mình có đoạn code như thế này:
PHP:
Private Sub CommandButton1_Click()
    n = 21
    For j = 1842 To 1851
        For i = 67 To 1430
            If Cells(i, 5) = Cells(j, 2) And Cells(i, 7) = Cells(1840, 5) Then
                Cells(i, n) = Cells(i, n) + Cells(j, 5)
                n = n + 1
                Exit For
            End If
        Next i
    Next j
End Sub
Khi chạy đến dòng:
PHP:
If Cells(i, 5) = Cells(j, 2) And Cells(i, 7) = Cells(1840, 5) Then
thì cells(i,5) = 1111 còn cells(j,2) = "1111" thế là không thỏa mãn điều kiện bằng nhau và nhảy qua. Mình đã thử đặt toàn bộ thành định dạng Number hoặc text đều bị tương tự. Mình thử up lên nhưng toàn bị lỗi upload. Các bạn xem hộ mình file này : http://sdrv.ms/1bYL3nU (link skydriver)
 
Khi chạy đến dòng:
PHP:
If Cells(i, 5) = Cells(j, 2) And Cells(i, 7) = Cells(1840, 5) Then
thì cells(i,5) = 1111 còn cells(j,2) = "1111" thế là không thỏa mãn điều kiện bằng nhau và nhảy qua. Mình đã thử đặt toàn bộ thành định dạng Number hoặc text đều bị tương tự. Mình thử up lên nhưng toàn bị lỗi upload. Các bạn xem hộ mình file này : http://sdrv.ms/1bYL3nU (link skydriver)

thử sửa
If Cells(i, 5)+0 = Cells(j, 2)+0 And Cells(i, 7)+0 = Cells(1840, 5)+0 Then

xem sao
 
Upvote 0
Mình có đoạn code như thế này:
PHP:
Private Sub CommandButton1_Click()
    n = 21
    For j = 1842 To 1851
        For i = 67 To 1430
            If Cells(i, 5) = Cells(j, 2) And Cells(i, 7) = Cells(1840, 5) Then
                Cells(i, n) = Cells(i, n) + Cells(j, 5)
                n = n + 1
                Exit For
            End If
        Next i
    Next j
End Sub
Khi chạy đến dòng:
PHP:
If Cells(i, 5) = Cells(j, 2) And Cells(i, 7) = Cells(1840, 5) Then
thì cells(i,5) = 1111 còn cells(j,2) = "1111" thế là không thỏa mãn điều kiện bằng nhau và nhảy qua. Mình đã thử đặt toàn bộ thành định dạng Number hoặc text đều bị tương tự. Mình thử up lên nhưng toàn bị lỗi upload. Các bạn xem hộ mình file này : http://sdrv.ms/1bYL3nU (link skydriver)

Lỗi này có thể là do bạn đang so sánh giữa text và number :
ví dụ :
* bạn gõ A1 = 1 và A2 = '1
* A3 bạn gõ công thức sau : =If(A1=A2,true,false) ---> luôn trả về giá trị false
--> để khắc phục bạn có thể thêm biểu thức Clng hay Cdbl :

PHP:
If(Cdbl(cells(i,5))=Cdbl(cells(j,2))
 
Upvote 0
Lỗi này có thể là do bạn đang so sánh giữa text và number :
ví dụ :
* bạn gõ A1 = 1 và A2 = '1
* A3 bạn gõ công thức sau : =If(A1=A2,true,false) ---> luôn trả về giá trị false
--> để khắc phục bạn có thể thêm biểu thức Clng hay Cdbl :

PHP:
If(Cdbl(cells(i,5))=Cdbl(cells(j,2))

Mình cũng nghĩ là 2 định dạng khác nhau nhưng ko biết làm thế nào để chuyển về cùng 1 loại, hj!
Thanks bạn đã chỉ mình biết thêm về hàm convert CBBL
 
Upvote 0

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

Back
Top Bottom