nhờ cao nhân sửa lỗi Error 1004, file Excel đang dùng bình thường

Liên hệ QC

acrox84

Thành viên hoạt động
Tham gia
22/3/08
Bài viết
101
Được thích
28
Như tiêu đề, bạn nào am hiểu tải về sửa lỗi giúp mình với.
Trước giờ dùng file này ổn định trên 1 máy tính, giờ nó dở chứng ngang, có thể thuộc tính dữ liệu hay cái gì thay đổi mình không rành.

Excel đang dùng bản 2016, đã vào Setting chỉnh Trust access to the VBA... và Disable all macros with notification.
1628045989975.png
 

File đính kèm

  • Loi Error 1004.xlsm
    59.9 KB · Đọc: 8
Kết quả không có dòng nào, K = 0
Hãy dùng câu lệnh If K > 0 Then rồi mới tới việc điền kết quả
 
Upvote 0
Bạn kiểm tra điều kiện của bạn xem
Mã:
 If Data(i, 40) <> 1 And Data(i, 47) <> 1 And Data(i, 13) > 0 And Data(i, 1) <> "0835271809" And Data(i, 1) <> "0945278533" And Data(i, 1) <> "0908790179" And Data(i, 1) <> "0369819191" And Data(i, 1) <> "0325853135" And Data(i, 1) <> "0917223374" And Data(i, 1) <> "0979037703" And Data(i, 1) <> "0827491832" And Data(i, 1) <> "0837370007" And Data(i, 1) <> "0964969904" And Data(i, 1) <> "0336118228" And Data(i, 1) <> "0832055798" And Data(i, 1) <> "0834549338" And Data(i, 1) <> "0907769225" And Data(i, 1) <> "0844300868" And Data(i, 1) <> "0828382838" And Data(i, 1) <> "0933077070" And Data(i, 1) <> "0909088982" And Data(i, 1) <> "0966501515" And Data(i, 1) <> "0377166499" And Data(i, 1) <> "0763170668" And Data(i, 1) <> "0986900056" And Data(i, 1) <> "0969064182" And Data(i, 1) <> "0844800088" And Data(i, 1) <> "0949995661" And Data(i, 1) <> "0964585797" And Data(i, 1) <> "0913039705" Then
Điều kiện này sao xuất ra nổi.
Vì không hiểu rõ về bảng tính nên bạn sửa code này lại xem
Mã:
 If Data(i, 40) = 1 And Data(i, 47) <> 1 And Data(i, 13) > 0 And Data(i, 1) = Sheets("KhachLe").Range("H2").Value Then
 
Upvote 0
lúc trước nó vẫn chạy bình thường mà, cũng y code vậy, mình ko có chỉnh sửa gì code cả
Lúc trước có lẽ dữ liệu nhiều, file này chỉ có 3 dòng dữ liệu, lại xét điều kiện 1 tỷ cái and nên không có dòng nào thoả điều kiện.
 
Upvote 0
Như tiêu đề, bạn nào am hiểu tải về sửa lỗi giúp mình với.
Trước giờ dùng file này ổn định trên 1 máy tính, giờ nó dở chứng ngang, có thể thuộc tính dữ liệu hay cái gì thay đổi mình không rành.

Excel đang dùng bản 2016, đã vào Setting chỉnh Trust access to the VBA... và Disable all macros with notification.
View attachment 263538
Lỗi này thường là do k = 0, bạn debug bàng cách trỏ chuột vào K là biết giá trị của nó ngay.
 
Upvote 0
Để tìm ra lỗi, thì tác giả bài đăng nên diễn dịch từ ngôn ngữ VBA sang tiếng Việt;
Chứ dữ liệu chỉ 3 dòng & ở cột 4O đều =1 thì K không thể #0
Để có dòng kết quả nào đó thì có chí ít 1 dòng thỏa điều kiện bạnđề ra
Hay bạn cố tình chọc dận thành viên có nhã í giúp bạn?
Buồn!
 
Upvote 0
Để tìm ra lỗi, thì tác giả bài đăng nên diễn dịch từ ngôn ngữ VBA sang tiếng Việt;
Chứ dữ liệu chỉ 3 dòng & ở cột 4O đều =1 thì K không thể #0
Để có dòng kết quả nào đó thì có chí ít 1 dòng thỏa điều kiện bạnđề ra
Hay bạn cố tình chọc dận thành viên có nhã í giúp bạn?
Buồn!
mấy bạn bỏ hết điều kiện ra xem, cũng hiện lỗi 1004 và không thực thi được.
Hôm qua mình vẫn sử dụng bình thường, thỏa mãn điều kiện thì hiện thông tin dữ liệu bảng bên dưới, còn không thì để bảng trắng --> đều không có báo lỗi gì cả.
 
Upvote 0
Upvote 0
Upvote 0
mấy bạn bỏ hết điều kiện ra xem, cũng hiện lỗi 1004 và không thực thi được.
Hôm qua mình vẫn sử dụng bình thường, thỏa mãn điều kiện thì hiện thông tin dữ liệu bảng bên dưới, còn không thì để bảng trắng --> đều không có báo lỗi gì cả.
Có code

For i = 1 To UBound(Data)
If Data(i, 40) <> 1 And ... Then
K = K + 1
...
End If
Next
Chưa cần xét các điều kiện khác, chỉ cần xét Data(i, 40) <> 1

Mảng Data lấy dữ liệu từ sheet Data có 3 dòng. Do Data!AN2 = Data!AN3 = Data!AN4 = 1, nên Data(i, 40) = 1 với i = 1, 2, 3. Tức điều kiện (Data(i, 40) <> 1) = FALSE. Vì thế Data(i, 40) <> 1 And ... = FALSE. Hậu quả là K = K + 1 không được thực hiện lần nào, vì thế K = 0 sau vòng FOR. Lúc này:

Range("A6").Resize(K, 10) = KQ -> Range("A6").Resize(0, 10) = KQ -> Lỗi do tham số cho RESIZE phải > 0.

Đừng viện cớ hôm trước code chạy mượt. Vì hôm trước dữ liệu khác nên kết quả khác. Người viết code phải lường được các tình huống. Vd. nhiều người cứ xác định dòng cuối rồi lấy dữ liệu vào mảng. Họ không phục vụ trường hợp lỗi khi KHÔNG CÓ DỮ LIỆU.
 
Upvote 0
Web KT
Back
Top Bottom