Code lọc dữ liệu bị lỗi Run-time error '1004' (1 người xem)

  • Thread starter Thread starter iloveit
  • Ngày gửi Ngày gửi

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

iloveit

Thành viên thường trực
Tham gia
2/3/13
Bài viết
212
Được thích
52
Giới tính
Nam
Nghề nghiệp
Tự do
Như trong file đính kèm tôi có sử dụng code lọc dữ liệu. Mục địch khi click vào nút LỌC ở Sheet LOCXUAT thì sẽ lọc theo các điều kiện tương ứng. Dữ liệu nguồn được lấy từ Sheet THEODOI.

Nhưng tôi không biết sai ở đâu mà lại bị lỗi Run-time error '1004'

Ở Sheet LOCNHAP tôi cũng sử dụng đoạn code tương tự nhưng không bị lỗi nêu trên.

Nhờ các anh chị và các bạn xem giúp. Ngoài ra, sau khi lọc tôi chỉ muốn kẻ khung phàn có dữ liệu thôi, có lúc nó lại kẻ thừa.
 

File đính kèm

Như trong file đính kèm tôi có sử dụng code lọc dữ liệu. Mục địch khi click vào nút LỌC ở Sheet LOCXUAT thì sẽ lọc theo các điều kiện tương ứng. Dữ liệu nguồn được lấy từ Sheet THEODOI.

Nhưng tôi không biết sai ở đâu mà lại bị lỗi Run-time error '1004'

Ở Sheet LOCNHAP tôi cũng sử dụng đoạn code tương tự nhưng không bị lỗi nêu trên.

Nhờ các anh chị và các bạn xem giúp. Ngoài ra, sau khi lọc tôi chỉ muốn kẻ khung phàn có dữ liệu thôi, có lúc nó lại kẻ thừa.
Thứ nhất, câu lệnh Rows("11:200").Delete Shift:=xlUp xóa mất tiêu đề của bảng bên dưới, nên việc lọc dữ liệu sẽ không thực hiện được.
=> Cách khắc phục: Copy tiêu đề ở bảng chính (sheet THEODOI) dán qua hàng 11 sheet LOCXUAT rồi sửa số 11 trong câu lệnh trên thành số 12.

Thứ hai, trong câu lệnh lọc có chỗ này: CopyToRange:=Range("A11"), chỗ này xác định rằng việc lọc chỉ copy cột có tiêu đề trùng với tiêu đề tại ô A11 qua mà không copy các cột khác.
=> Cách khắc phục: Sửa A11 thành A11:H11.

Thứ ba, để khắc phục vấn đề kẻ khung thừa thì bạn nên thay câu lệnh Rows("12:200").Delete Shift:=xlUp bởi câu lệnh [A12:H65000].Clear, câu lệnh này sẽ xóa toàn bộ vùng này (giá trị, định dạng,...) trước khi lọc.
 
Upvote 0
Thứ nhất, câu lệnh Rows("11:200").Delete Shift:=xlUp xóa mất tiêu đề của bảng bên dưới, nên việc lọc dữ liệu sẽ không thực hiện được.
=> Cách khắc phục: Copy tiêu đề ở bảng chính (sheet THEODOI) dán qua hàng 11 sheet LOCXUAT rồi sửa số 11 trong câu lệnh trên thành số 12.

Thứ hai, trong câu lệnh lọc có chỗ này: CopyToRange:=Range("A11"), chỗ này xác định rằng việc lọc chỉ copy cột có tiêu đề trùng với tiêu đề tại ô A11 qua mà không copy các cột khác.
=> Cách khắc phục: Sửa A11 thành A11:H11.

Thứ ba, để khắc phục vấn đề kẻ khung thừa thì bạn nên thay câu lệnh Rows("12:200").Delete Shift:=xlUp bởi câu lệnh [A12:H65000].Clear, câu lệnh này sẽ xóa toàn bộ vùng này (giá trị, định dạng,...) trước khi lọc.

Cám ơn anh rất nhiều. Anh giải thích rất chi tiết.
 
Upvote 0

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

Back
Top Bottom