Bạn chat chit quen rồi nên viết không đúng tục lệ của dân GPE.
ạ.e , e.lệnh , cope.ko là kiểu viết rất rất sai tiếng Việt.
1. Em là em chứ không e
2. Không là không chứ không ko
3. Chấm câu xong phải cách ra 1 khoảng trắng và viết hoa chữ cái đầu tiên.
Muốn học lập trình thì bỏ cái thói viết tắt. Có ba lý do:
1. Từ viết tắt chỉ dùng để đặt tên biến.
2. Từ ngữ viết tắt buộc người trả lời phải đoán. Bạn nghĩ là thôg dụng, dễ đoán, những chưa chắc người khác đã thấy nó là thông dụng.
3. Người viết tắt thường có tính hời hợt, cẩu thả. Chịu khó tập viết từ ngữ kỹ lưỡng sẽ giúp cho việc giải bài dễ hơn.
Tôi hiểu là bạn muốn dùng WorksheetFunction.Index(LookRange1 & LookRange2, 0) để tạo bảng dò cho MATCH. Có lẽ VBA không cho phép kiểu đó đâu. Tức bạn không thể bắt chước cách làm trên sheet.
Bạn nên tạo một bảng dò từ 2 cột A và E.
Bạn có
Mã:
Set SourceRange = wsD.Range("A:E")
Set LookRange1 = wsD.Range("A:A")
Set LookRange2 = wsD.Range("e:e")
Đây là thói quen rất xấu. Trên sheet và cả trong VBA không bao giờ tham chiếu cả cột. Hãy lấy đủ lớn, thậm chí 100 000 dòng chứ không phải hàng triệu dòng. Nếu ông thầy nào dậy thế thì bỏ ngay ông thầy đó.
Tôi hiểu là bạn muốn dùng WorksheetFunction.Index(LookRange1 & LookRange2, 0) để tạo bảng dò cho MATCH. Có lẽ VBA không cho phép kiểu đó đâu. Tức bạn không thể bắt chước cách làm trên sheet.
Bạn nên tạo một bảng dò từ 2 cột A và E.
Bạn có
Mã:
Set SourceRange = wsD.Range("A:E")
Set LookRange1 = wsD.Range("A:A")
Set LookRange2 = wsD.Range("e:e")
Đây là thói quen rất xấu. Trên sheet và cả trong VBA không bao giờ tham chiếu cả cột. Hãy lấy đủ lớn, thậm chí 100 000 dòng chứ không phải hàng triệu dòng. Nếu ông thầy nào dậy thế thì bỏ ngay ông thầy đó.
Code trong vòng FOR sai
Tức cả 3 cột kết quả cho y = 3, 4, 5 đều lấy từ cột 3 (cột C - Designation) của sheet Data. Đúng thì phải là lấy lần lượt từ cột D, B, C