Code của hàm tìm kiếm bị sai (1 người xem)

Liên hệ QC

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

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

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

Back
Top Bottom