Cảm ơn bạn AutoReply đã động viên, bạn vừa giỏi vừa khiêm tốn - mình còn phải học từ bạn nhiều nhiều.giải toán cũng phải có sơ đồ chiến thuật bài bản . Các bạn Hải Phòng ( gồm bạn DHN và cô giáo nick màu xanh ...) thật là giỏi và tâm huyết , mình rất khâm phục.
Chỉ tiếc mình ít học quá, mấy cái sơ đồ chiến thuật mình nhìn 1 hồi hoa cả mắt mà chưa có hiểu được . Hic
Nhưng chắc sẽ có nhiều người khác hiểu và áp dụng tốt . Chúc bạn thành công .
Cảm ơn anh nhiều. Góp ý của anh rất hay và thực tiễn, em sẽ bổ sung vào Pic tiếp theo số DHN-VBA-PIC-016.1Thuật toán tính Min, Max chưa ổn vì em gán gía trị Min ban đầu bằng 1 số rất lớn là không hay lắm.
Theo tôi, gán giá trị đầu tiên của vùng bằng Max (Min), sau đó tạo vòng lặp so sánh trong vùng dữ liệu. Nếu tìm được giá trị khác thì dùng phép thay thế để có giá trị Max (Min) mới...
Các bạn hướng dẫn sau khi ghi macro xong rồi kéo bảng vba sang một bên,bảng tính sang 1 bên, bấm f8 để xem nhưng mình bấm f8 không thấy gì hết. Bạn hướng dẫn mình cách sử dụng f8 để xem quá trình thực hiện ghi macro
Theo quan điểm của tôi thì với người mới không khuyến khích dùng F8, họ phải hình dung được Keyword trong đầu như thế nào mà lựa chọn câu lệnh đúng. Khi chạy F8 thì đến đâu biết đến đó, đúng thì giữ, còn nếu nắm bắt được Keyword trong những dòng Code thì sẽ tạo tư duy đọc, dịch code cho sau này.Cảm ơn anh đã nhiệt tình chia sẻ ạ, e mới đọc lướt qua, còn tạm thời đọc kỹ được đến bài này ạ. Vì e cũng tự học VBA nên học hành chưa bài bản cho lắm, hơn nữa em chưa đc tiếp cận phương pháp học trực quan này sớm hơn
Đoạn sửa code trong Macro này sau khi ghi Macro xong e thường vào macro chọn phím F8 để duyệt khi qua các dòng lệnh thì code đó thực thi điều gì, nếu qua dòng nào mà k thấy nó thay đổi thì e xoá đi cho code ngắn hơn. Không biết là nó có đúng không nhưng nếu đúng thì anh chỉ dẫn thêm mục này vào ảnh cho các bạn biết thêm anh nhé, hoặc là gợi ý anh ạ. Chân thành cảm ơn anh! chúc anh một ngày vui
Thầy vẫn còn thiếu chặt chẽ:Thuật toán tính Min, Max chưa ổn vì em gán gía trị Min ban đầu bằng 1 số rất lớn là không hay lắm.
Theo tôi, gán giá trị đầu tiên của vùng bằng Max (Min), sau đó tạo vòng lặp so sánh trong vùng dữ liệu. Nếu tìm được giá trị khác thì dùng phép thay thế để có giá trị Max (Min) mới...
Tại sao phải +1 và -1? chỉ cần gán giá trị đầu tiên là max hoặc min là ok, thuật toán này người ta gọi là thuật toán tìm lính canhThầy vẫn còn thiếu chặt chẽ:
Để tìm trị MIN, ta cần lấy MAX trong dẫy (là đúng rồi) & nên cộng thêm 1;
Tương tự tìm MAX, ta nên bắt đầu từ trị MIN -1
Chắc chắn với bạn là danh sách có 1 bạn hoặc các bạn trùng nhau về số liệu thì kết quả chắc chắn ra sẽ đúng 100%, nếu có thời gian bạn có thể kiểm tra độ tin cậy của thuật toánVấn đề là trong danh sách (DS) tìm đó có mỗi 1 thì sao?
Hay trong DS có vài đứa, nhưng cùng số liệu tất tần tật, thì sao?
Chào bạn.Em chào anh @dhn46 , anh cho em hỏi 1 chút là ở hình ảnh hướng dẫn sử dụng If để xét "giỏi", "khá" thì nó chỉ sử dụng cho 1 ô, if range("A1") >8 vậy nếu mình có danh sách 12 người cần xét, thứ tự từ A1 đến A10, thì làm sao để nó xét điều kiện ở các ô tiếp được ạ?
vâng ạ, để em thử lại. Em cám ơn anh ạ. Chúc anh 20-10 vui vẻ ạ!Chào bạn.
Khi đó phải dùng vòng lặp để duyệt qua vùng dữ liệu rồi áp điều kiện xét vào.
Bạn xem Pic số 014, 015, 015.1, 016, 016.1 để biết quy tắc vòng lặp For rồi kết hợp với Pic 012 rồi xây dựng thuật toán. Logic 1 chút sẽ ra kết quả.