Kiểm tra một giá trị có sẵn xem có tồn tại trong một tập hợp collection hay không mà không cần phải dùng vòng lặp

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

Nhật Anh 9x

Thành viên chính thức
Tham gia
21/10/22
Bài viết
72
Được thích
3
Chào Các Anh Chị!

Em đang muôn kiểm tra một giá trị có cho trước xem có tồn tại trong một tập hợp hay không, mà không cần phải dùng vòng lặp. Vì yêu cầu của em là nếu có tồn tại thì sẽ thực thi câu lệnh tiếp theo, còn không tồn tại thì sẽ thoát khỏi sub luôn, vậy anh chị có cách nào xin chỉ dạy cho em với ạ!
 
Nếu có máy tính đây thì tôi đã làm cho bạn rồi.

Bạn lưu ý nhắc nhở ở bài #19. Nếu vẫn thế thì sau này khó nhận được trợ giúp đấy.
Vâng anh ạ. e nhớ ạ
Bài đã được tự động gộp:

Nếu có máy tính đây thì tôi đã làm cho bạn rồi.

Bạn lưu ý nhắc nhở ở bài #19. Nếu vẫn thế thì sau này khó nhận được trợ giúp đấy.
Anh có lớp dạy online không ạ
 
Upvote 0
Nếu có máy tính đây thì tôi đã làm cho bạn rồi.

Bạn lưu ý nhắc nhở ở bài #19. Nếu vẫn thế thì sau này khó nhận được trợ giúp đấy.
Không chỉ riêng vấn đè trong bài #19. Vấn đề chính là thớt chỉ giả vờ vâng vâng dạ dạ chứ không hề hiểu và không hề quan tâm người khác nói gì, chỉ biết đợi thấy code thì tải về.

Bằng chứng:
 
Upvote 0
Bạn nhớ gì và nhớ thế nào?
Đọc bài #25 chưa? Thớt đây thuộc hạng rất giỏi. Chỉ tiếc là cái tự ái cao quá cho nên trí khôn đặt hết vào kỹ thuật móc lò. Nếu chịu khó đè tự ái xuống, chú ý tư duy vào học hỏi thì đâu có phải lên đây nhờ làm giùm thế này.
 
Upvote 0
Không chỉ riêng vấn đè trong bài #19. Vấn đề chính là thớt chỉ giả vờ vâng vâng dạ dạ chứ không hề hiểu và không hề quan tâm người khác nói gì, chỉ biết đợi thấy code thì tải về.

Bằng chứng:
Dạ vâng là sự tôn trọng của em với mọi người, em cũng xin lỗi em mới học nên kiến thức còn ít và hỏi các anh chị nhiều. khiến anh lại nghĩ em lười và lợi dụng mọi người. chỉ biết ăn sẵn. anh có chê hay nói em kém thì em cũng vẫn cảm ơn anh, anh không có lời giải thì e cũng cảm ơn. vấn đề em hỏi sau này người khác gặp phải họ cũng có thể tham khảo. vì người mới đâu phải ai học được vba dễ dàng và nhanh chóng đâu anh. nên anh có quyền trả lời hoặc không trả lời mà. chúng em đi làm và tự học thêm chứ không phải lúc nào cũng có thời gian để học hay thông minh để hc nhanh anh ạ. em cảm ơn các anh chị đã chỉ giúp em những bài viết trước nó giúp công việc của e được nhanh hơn. cảm ơn anh đã góp ý
 
Upvote 0
Đọc bài #25 chưa? Thớt đây thuộc hạng rất giỏi. Chỉ tiếc là cái tự ái cao quá cho nên trí khôn đặt hết vào kỹ thuật móc lò. Nếu chịu khó đè tự ái xuống, chú ý tư duy vào học hỏi thì đâu có phải lên đây nhờ làm giùm thế này.
Trước em cũng có tham gia diễn đàn về chuyên môn công việc. và em cũng trả lời các câu hỏi của mọi người với những gì em biết. e không bao giờ nghĩ như anh nghĩ. e chỉ có suy nghĩ là không biết thì hỏi. mỗi câu hỏi bài viết là một vấn đề. mỗi lời giải là một hướng xử lý khác nhau. và người sau gặp phải cũng tìm được lời giải từ đây. trong diễn đàn nếu e giỏi thì e đã đi trả lời cho mọi người, nhưng e dốt thì nên e phải đi hỏi, anh cũng đừng vội nói người khác như vậy. anh em mình không biết nhau, chỉ thông qua một bài viết việc gì anh phải vướng bận như vậy anh. anh chỉ cần nghĩ thằng này tư duy ngu, hỏi đi hỏi lại 1 vấn đề không thèm trả lời là xong, thời gian a để đi trả lời bài viết khác
 
Upvote 0
... vấn đề em hỏi sau này người khác gặp phải họ cũng có thể tham khảo. ...
Vấn đề của bạn là do ý chủ quan của bạn tự đặt ra, và bạn đã từ chối giải thích "tại sao nó phải vậy"
Do đó, nó là vấn đề riêng, bạn bảo rằng "sau này người khác gặp phải" cũng là tự bạn suy nghĩ, không có gì để minh chứng.

Nhắc lại cho các bạn khác:
- Thớt hỏi về Collection mà không chịu chú ý người ta giải thích về căn bản của Collection lần các phương cách giải quyết.
- Thớt không hề cho biết tại sao các phương án giải quyết của các người đoán mò không áp dụng được. (xem chú thích)
- Thớt nhắc đi nhắc lại từ "học hỏi" mà không đặt được ưu tiên hiện tại là muốn giải quyết vấn đề đưa ra ở bài #1 (học code) và #17 (thực tế). Bởi vì theo vấn đề thực tế thì cái cấu trúc cần áp dụng đâu phải là Collection.

Chú: collection đơn giản là một loại danh sách liên kết (linked list), dùng để bổ khuyết vấn đề của mảng động là không dổi vị trí phần tử được (mảng động chỉ khác mảng tĩnh là có thể tăng số phần tử).
Trong môi trường VBA (đúng ra là từ VB), MS đưa ra thêm loại dual-indexed collection, truy cập bằng 2 kiểu, chỉ số và từ khóa. Điển hình của loại này là collection worsheets - chỉ số là thứ tự của sheet và từ khoa là tên của sheet.
Đọc ngược về các bài trước, các bạn sẽ thấy có vài người đưa ra loại này. Và cũng vì lý do "loại/kiểu" này, trong bài trả lời đầu tiên tôi có hỏi cái collection ấy ở đâu ra?
Thêm nữa, vì collection là danh sách liên kết cho nên việc truy vấn bằng vòng lặp là lẽ đương nhiên. Nhiều tay tổ nghề lập trình đòng ý rằng loại collection có key chỉ là loại có thêm một trường chứa key trong mõi phần tử; bên trong code truy vấn bằng key, VBA vẫn phải dùng vòng lặp duyệt danh sách cho đến khi gặp key. Chung quy thì chả nhanh hơn bao nhiêu, chỉ là dùng key thì bên ngoài trông gọn hơn thôi.

vì người mới đâu phải ai học được vba dễ dàng và nhanh chóng đâu ...
Người mới học không nên quan tâm vào chuyện cãi lý.
Đã có ý cãi lý là bản tính chủ quan sẽ cản trở việc tiếp thu điều cần học.
Khả năng lý luận lô gic nên dồn hết 100% vào việc giải quyết vấn đề.

...anh không có lời giải ...
Những người đưa ra lời giải chỉ là dân chuyên đoán mò, hoặc dân khoe khoang code xịn.
Câu hỏi ngược lại "collection ấy ở đâu ra?" bạn đã trả lời chưa? Nếu không biết nó ở đâu ra thì MỌI LỜI GIẢI CHỈ LÀ GIẢ ĐỊNH.
 
Upvote 0
Code duyệt Collection không qua vòng lặp:

Function TimPhanTu(tri, c, Optional i As Long = 1) As Long
If i > c.Count Then Exit Function
If c(i) = tri Then
TimPhanTu = i
Exit Function
End If
TimPhanTu = TimPhanTu(tri, c, i+1)
End Function

Code chính:
IF TimPhanTu( trị cần tìm, cồ léc xông ) Then
MsgBox "có"
Else
MsgBox "không"
End If
 
Upvote 0
E nhớ các a dạy là trước khi làm cái gì phải chọn hướng đi cho đúng, phân tích bài cần gì và tìm hiểu.
Bài #19 khuyên bạn không nên viết tắt nữa và thực sự bạn có đọc nhắc nhở của tôiđọc bài #19 không? Nếu không đọc thì nói là không đọc nhé. Còn nếu đọc rồi thì bạn có nhớ, có hiểu gì đâu: bạn vẫn viết e với a suốt từ bài #22 đến bài #28 kìa.
 
Upvote 0
Còn đây là code cho bạn với file đính kèm ở bài #15 và bạn hãy lưu ý những nhắc nhở của tôi:
 

File đính kèm

  • test_pppp_satoshi99.xlsm
    1.7 MB · Đọc: 10
Upvote 0
Còn đây là code cho bạn với file đính kèm ở bài #15 và bạn hãy lưu ý những nhắc nhở của tôi:
Bạn lưu ý chỉ bằng thừa.
Tôi nói thớt cố tình mỉa mai không phải nói đùa.
Lục lại những bài ngoài thớt này sẽ thấy thớt biết chọn người để biết khi nào có thể mỉa mai, và khi nào cần tâng bốc.
 
Upvote 0
Còn đây là code cho bạn với file đính kèm ở bài #15 và bạn hãy lưu ý những nhắc nhở của tôi:
Nếu đã nhắc nhở mà không "lưu ý", mà vẫn cứ viết code hai ba bài theo yêu cầu "e a" thì anh đang tự phá việc nhắc nhở của mình.
Dạ vâng là sự tôn trọng của em với mọi người, em cũng xin lỗi em mới học nên kiến thức còn ít và hỏi các anh chị nhiều.
Bạn không đọc hết những nhắc nhở, lần 1, lần 2 và lần 3, đó là nhắc nhở "đừng viết tắt". Bạn hỏi nhiều không ai trách, cách hỏi "e a" mới là vấn đề.
 
Upvote 0
Còn đây là code cho bạn với file đính kèm ở bài #15 và bạn hãy lưu ý những nhắc nhở của tôi:
vâng, em cảm ơn anh
Bài đã được tự động gộp:

Nếu đã nhắc nhở mà không "lưu ý", mà vẫn cứ viết code hai ba bài theo yêu cầu "e a" thì anh đang tự phá việc nhắc nhở của mình.

Bạn không đọc hết những nhắc nhở, lần 1, lần 2 và lần 3, đó là nhắc nhở "đừng viết tắt". Bạn hỏi nhiều không ai trách, cách hỏi "e a" mới là vấn đề.
Vâng. em hiểu rồi ạ
 
Upvote 0
Cũng còn may là không/chưa phải nhận cú VBA chưỡi!

Chúc các bạn có tuần làm việc nhiều hiệu quả!
 
Upvote 0
Em thấy bây giờ ngôn ngữ chat chít đã ăn vào "máu" của thế hệ 9X trở lên (em cũng nằm trong thế hệ này ), đi làm thì làm việc zalo nhiều, nên viết tắt nhiều, nhưng trên diễn đàn thì không nên nhe các bạn.
 
Upvote 0
Em thấy bây giờ ngôn ngữ chat chít đã ăn vào "máu" của thế hệ 9X trở lên (em cũng nằm trong thế hệ này ), đi làm thì làm việc zalo nhiều, nên viết tắt nhiều, nhưng trên diễn đàn thì không nên nhe các bạn.
Khi làm việc lại càng không được viết tắt. Trao đổi với đồng nghiệp phải rõ ràng từng chữ tránh hiểu sai làm hỏng việc. Trao đổi với sếp phải lịch sự. Trao đổi với nhân viên dưới quyền phải nghiêm trang.
 
Upvote 0
Không em thấy cả sếp cả nhân viên đều dùng ngôn ngữ chat chít viết tắt hết, đặc biệt là các từ a, e, mn hình như là thành mặc định rồi.Nhiều lúc viết đúng lại thấy lỗi thời.
 
Upvote 0
Web KT

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

Back
Top Bottom