VBA: Xin giúp đỡ vê hàm If khi so sánh 1 Cell với 1 chuỗi cho trước (1 người xem)

Liên hệ QC

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

crispapple

Thành viên mới
Tham gia
6/5/14
Bài viết
3
Được thích
0
Xin chào anh, chị; các bạn,

Mình tên Nguyên)(&&@@. Rất mong được sự cố vấn của anh, chị; các bạn về vấn đề như sau-+*/:

Mình viết 1 hàm (function) có logic như vầy:

Mã:
Function FindCustomerForProduct(product as Range, customer as Range)

For count = 1 To 1000

     If customer.Cells(count, 1) = "ondeal" Then
          count_c = count_c + 1
     End if

Next count

FindCustomerForProduct = count_c

End Function

Khi chạy, mình bôi A1:D13 để gán cho đối số thứ 2: customer. Mình muốn là: nếu trong các ô từ A1 đến A13, ô nào có giá trị là "ondeal" thì count_c sẽ tăng lên.

Theo như logic vậy, mình thử nhập "ondeal" cho các ô trong A1:A13 nhưng hàm luôn trả về giá trị là 0.-+*/-+*/-+*/**~****~****~**

Mình không hiểu dòng code:
Mã:
If customer.Cells(i, 1) = "ondeal" Then
      count_c = count_c + 1
End If

để so sánh như vậy có hợp lý không?

Rất mong mình giải thích ý đồ của mình dễ hiểu, --=0. Hi vọng nhận được phản hồi sớm từ các anh, chị; các bạn,

Thanks,
Nguyên.
 
Lần chỉnh sửa cuối:
Xin chào anh, chị; các bạn,

Mình tên Nguyên)(&&@@. Rất mong được sự cố vấn của anh, chị; các bạn về vấn đề như sau-+*/:

Mình viết 1 hàm (function) có logic như vầy:

Mã:
Function FindCustomerForProduct(product as Range, customer as Range)

For count = 1 To 1000

     If customer.Cells([SIZE=5][B][COLOR=#b22222]i[/COLOR][/B][/SIZE], 1) = "ondeal" Then
          count_c = count_c + 1
     End if

Next count

FindCustomerForProduct = count_c

End Function

Khi chạy, mình bôi A1:D13 để gán cho đối số thứ 2: customer. Mình muốn là: nếu trong các ô từ A1 đến A13, ô nào có giá trị là "ondeal" thì count_c sẽ tăng lên.

Theo như logic vậy, mình thử nhập "ondeal" cho các ô trong A1:A13 nhưng hàm luôn trả về giá trị là 0.-+*/-+*/-+*/**~****~****~**

Mình không hiểu dòng code:
Mã:
If customer.Cells(i, 1) = "ondeal" Then
      count_c = count_c + 1
End If

để so sánh như vậy có hợp lý không?

Rất mong mình giải thích ý đồ của mình dễ hiểu, --=0. Hi vọng nhận được phản hồi sớm từ các anh, chị; các bạn,

Thanks,
Nguyên.

thử sửa lại thành : customer.Cells(count, 1) = "ondeal"
Nếu thì là đếm thì có thể dùng hàm CountIf của Excel mà bạn !
Nhìn qua hàm bạn viết mình thấy có 1 số điểm không hợp lý cho lắm !
 
Upvote 0
Cảm ơn bạn húngpecc đã quan tâm và reply sớm như vậy :D:D:D

1/Mình đã sửa lại "i" thành "count" rồi
2/ Mình đang cố gắng bắt sự kiện khi customer.Cells(count,1) = "ondeal" sẽ xử lý hàng loạt thuật toán khác nữa. Khi post bài mình post demo count_c = count_c + 1 cho đơn giản và dễ hiểu thôi :D :D.

Cái mình quan tâm hơn cả dòng If, khi so sánh: If customer.Cells(count,1) = "ondeal" Then, dường như kết quả trả về của phép so sánh này là false dù Cell đang duyệt là "ondeal"

Thanks bạn 1 lần nữa,
Nguyên.
 
Upvote 0
Chào bạn Hau151978,

Mình đã sử dụng biến "i" thay cho count rồi. Hàm vẫn chạy tốt, vẫn xuất được kết quả tính toán bình thường.

Mình sẽ up file lên sớm nhất để bạn xem nhé :D
 
Upvote 0
Cảm ơn bạn húngpecc đã quan tâm và reply sớm như vậy :D:D:D

1/Mình đã sửa lại "i" thành "count" rồi
2/ Mình đang cố gắng bắt sự kiện khi customer.Cells(count,1) = "ondeal" sẽ xử lý hàng loạt thuật toán khác nữa. Khi post bài mình post demo count_c = count_c + 1 cho đơn giản và dễ hiểu thôi :D :D.

Cái mình quan tâm hơn cả dòng If, khi so sánh: If customer.Cells(count,1) = "ondeal" Then, dường như kết quả trả về của phép so sánh này là false dù Cell đang duyệt là "ondeal"

Thanks bạn 1 lần nữa,
Nguyên.
If customer.Cells(count,1) = "ondeal" :
*
Logic test sẽ cho kết quả là true : nếu cell đang được duyệt chứa chính xác chuỗi "ondeal" , các trường hợp :thừa 1 ký tự ( vd dấu cách, dấu xuống dòng ..), viết hoa viết thường , bảng mã unicode hay TCVN,... kết quả sẽ là False
* Thông thường so sánh chuỗi hay đi kèm với Lcase(), Ucase(), Like....

 
Upvote 0

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

Back
Top Bottom