Form tìm kiếm không hoạt động ở Sheet khác (1 người xem)

Liên hệ QC

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

keke355992

Thành viên thường trực
Tham gia
19/1/08
Bài viết
310
Được thích
20
Nghề nghiệp
KẾ TOÁN THUẾ, TƯ VẪN THUẾ
E Chào m.n. E có form tìm kiếm như file đính kèm, E phát hiện ra lỗi là Form chỉ làm việc được trên Sheet Active. Ở Sheet ID Item DE + EEỉ thi chỉ có Form 1 hoạt động, Ở Sheet 123 thì chỉ có form 2 mới hoạt động ( Mặc dù code như nhau ). M.n sửa giùm e với a. E cảm ơn !
 

File đính kèm

E Chào m.n. E có form tìm kiếm như file đính kèm, E phát hiện ra lỗi là Form chỉ làm việc được trên Sheet Active. Ở Sheet ID Item DE + EEỉ thi chỉ có Form 1 hoạt động, Ở Sheet 123 thì chỉ có form 2 mới hoạt động ( Mặc dù code như nhau ). M.n sửa giùm e với a. E cảm ơn !
Vấn đề nằm ở sub UserForm_Initialize. Ở đó có câu lệnh này:
Mã:
pri_ArrData = .Range(Range("A2"), .Range("B" & Rows.Count).End(xlUp))
Tại vị trí Range("A2") thiếu dấu chấm ở trước, nên nó được hiểu là ô A2 của sheet hiện hành chứ không phải là ô A2 của sheet được chỉ định trong câu lệnh With. Do đó khi bạn đứng ở sheet ID Item DE + EE và gọi Form 2 thì câu lệnh trên xác định vùng bắt đầu từ ô A2 của sheet ID Item DE + EE đến ô cuối cùng trên cột B của sheet 123, tất nhiên vùng này là không xác định được, dẫn đến code báo lỗi. Giải thích tương tự khi bạn đứng ở sheet 123 để gọi Form 1.
Cách khắc phục: Thêm 1 dấu chấm vào trước Range("A2"), tức là câu lệnh sẽ trở thành:
Mã:
pri_ArrData = .Range([SIZE=4][COLOR=#ff0000][B].[/B][/COLOR][/SIZE]Range("A2"), .Range("B" & Rows.Count).End(xlUp))
 
Upvote 0
Vấn đề nằm ở sub UserForm_Initialize. Ở đó có câu lệnh này:
Mã:
pri_ArrData = .Range(Range("A2"), .Range("B" & Rows.Count).End(xlUp))
Tại vị trí Range("A2") thiếu dấu chấm ở trước, nên nó được hiểu là ô A2 của sheet hiện hành chứ không phải là ô A2 của sheet được chỉ định trong câu lệnh With. Do đó khi bạn đứng ở sheet ID Item DE + EE và gọi Form 2 thì câu lệnh trên xác định vùng bắt đầu từ ô A2 của sheet ID Item DE + EE đến ô cuối cùng trên cột B của sheet 123, tất nhiên vùng này là không xác định được, dẫn đến code báo lỗi. Giải thích tương tự khi bạn đứng ở sheet 123 để gọi Form 1.
Cách khắc phục: Thêm 1 dấu chấm vào trước Range("A2"), tức là câu lệnh sẽ trở thành:
Mã:
pri_ArrData = .Range([SIZE=4][COLOR=#ff0000][B].[/B][/COLOR][/SIZE]Range("A2"), .Range("B" & Rows.Count).End(xlUp))

Great. E cảm ơn ạ. Chúc nhà mình buổi tối zui zẻ :)
 
Upvote 0

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

Back
Top Bottom