Code của hàm tìm kiếm bị sai

Liên hệ QC

Phương Phương mito

Thành viên thường trực
Tham gia
1/5/19
Bài viết
275
Được thích
65
Kính gửi ANh chị,
Hàm Vlookup trong file sai chỗ nào mà không chạy ạ ? Em cảm ơn ạ.
 

File đính kèm

  • HAM VLOOKUP DUNG DIC.xlsm
    20.5 KB · Đọc: 13
Kính gửi ANh chị,
Hàm Vlookup trong file sai chỗ nào mà không chạy ạ ? Em cảm ơn ạ.
Chào Bạn
Là bởi vì từ khóa tìm kiếm của Bạn không có trong bảng dò.. hiện code bạn có đoạn:
KHAMBENH = .Range(.[C2], .[C3000].End(3))
Theo đoạn này từ khóa sẽ là ngày tháng,, nhưng bên bảng dò làm gì có ngày tháng đâu bạn? Bạn thử sửa thành:
Mã:
KHAMBENH = .Range(.[D2], .[D3000].End(3))
Xem được không ạ?
 
Upvote 0
Chào Bạn
Là bởi vì từ khóa tìm kiếm của Bạn không có trong bảng dò.. hiện code bạn có đoạn:

Theo đoạn này từ khóa sẽ là ngày tháng,, nhưng bên bảng dò làm gì có ngày tháng đâu bạn? Bạn thử sửa thành:
Mã:
KHAMBENH = .Range(.[D2], .[D3000].End(3))
Xem được không ạ?
Không được bạn ạ !
 
Upvote 0
Mình có 1 vài théc méc:
(1) Chủ bài đăng bỏ các dòng trống giữa các câu lệnh trong macro 1 cách vô tội vạ để làm chi vậy?
[Nếu muốn làm oai với ai đó thì phải tìm ra hết lỗi trong các câu lệnh đã, sau mới đến khâu oai.]

(2) Với trình độ của mình thì bao giờ mình cũng viết [A9999].End(xlUp) cho nó tượng hình hơn thay vì con số 3 vô tri giác.

(*) Phương châm của mình thức nhất là đúng cái đã, chuyện hoa lá cành thêm vào cuối & lúc rỗi: & bây giờ đang lỗi chương trình là chưa rỗi cho bạn rồi!
 
Upvote 0
Mình có 1 vài théc méc:
(1) Chủ bài đăng bỏ các dòng trống giữa các câu lệnh trong macro 1 cách vô tội vạ để làm chi vậy?
[Nếu muốn làm oai với ai đó thì phải tìm ra hết lỗi trong các câu lệnh đã, sau mới đến khâu oai.]

(2) Với trình độ của mình thì bao giờ mình cũng viết [A9999].End(xlUp) cho nó tượng hình hơn thay vì con số 3 vô tri giác.

(*) Phương châm của mình thức nhất là đúng cái đã, chuyện hoa lá cành thêm vào cuối & lúc rỗi: & bây giờ đang lỗi chương trình là chưa rỗi cho bạn rồi!
trời, anh ơi em oai gì đâu ạ. Em tham khảo code ở diễn đàn rồi làm các bài phù hợp với yêu cầu công việc thôi anh ơi.
 
Upvote 0
Chào Bạn
Là bởi vì từ khóa tìm kiếm của Bạn không có trong bảng dò.. hiện code bạn có đoạn:

Theo đoạn này từ khóa sẽ là ngày tháng,, nhưng bên bảng dò làm gì có ngày tháng đâu bạn? Bạn thử sửa thành:
Mã:
KHAMBENH = .Range(.[D2], .[D3000].End(3))
Xem được không ạ?
Mấy cái bạn nói không phải là nguyên nhân lỗi code, theo bạn vì đâu mà lỗi thế :D
 
Upvote 0
Cảm ơn Bạn đã tham gia, hên quá , OT xin phép chỉ xem và học hỏi ạ :p
Bạn nói học hỏi làm mình ngại quá, bạn cũng giỏi lắm mà. Nhưng mình thấy lỗi ở đây là do khai báo Khambenh là mảng, nhưng phía dưới lại gán vào range, thứ 2 nữa là range đó hiện tại chỉ có 1 cell, cứ cho là khambenh=rang(..).value cũng bị lỗi vì không gán mảng cho 1 cell được. Đó là nguyên nhân gây lỗi, còn để code đúng ý thì chắc viết lại từ đầu, bạn ấy để dòng lung tung quá nên lười đọc
 
Upvote 0
@chủ bài đăng:
Dữ liệu bên trang ''LichTruc' của bạn đang quá ít; bạn nên thêm 8 hay 9 dòng nữa để dễ tìm ra lỗi chương trình
Nên có thói quen viết mô tả macro đã; sau đó mới viết các dòng lệnh theo mô tả đó.

Mình ví dụ
Bước 1: Dưa danh sách cán bộ CNV vô biến mảng . . .
Bước 2: Đưa danh sách bệnh nhân vô biến mảng . . .
Bước 3: Tạo vòng lặp duyệt cái gì đó theo điều kiện gì đó,. . . .
(Trong khi duyệt) Thỏa điều kiện đề ra thì đưa vô mảng kết quả đã khai báo

[Theo mình hiểu là duyệt theo điều kiện [Mã CNV], như vậy cách viết đúng cột chưa(?)
. . . . .]
 
Upvote 0
Sai chỗ này thôi
KHAMBENH = .Range(.[D2], .[D3000].End(3))
.[D3000].End(3) đây trả về giá trị tại ô cuối, chứ ko phải địa chỉ
bạn sửa lại
KHAMBENH = .Range(.[D2], .[D3000].End(3).Offset(1, 0))
do dữ liệu có 1 dòng, mà bạn gán vào mảng thì nó sẽ báo lỗi nên bạn cần lấy dư thêm 1 dòng (offset)
 
Upvote 0
Sai chỗ này thôi
KHAMBENH = .Range(.[D2], .[D3000].End(3))
.[D3000].End(3) đây trả về giá trị tại ô cuối, chứ ko phải địa chỉ
bạn sửa lại
KHAMBENH = .Range(.[D2], .[D3000].End(3).Offset(1, 0))
do dữ liệu có 1 dòng, mà bạn gán vào mảng thì nó sẽ báo lỗi nên bạn cần lấy dư thêm 1 dòng (offset)
Anh đúng rồi ạ ! em đã sửa được. Em cảm ơn anh và các anh chị ạ !
 
Upvote 0
Web KT
Back
Top Bottom