Nhờ sửa lỗi runtime 1004 liên quan đến Range và cells.

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

Dang Le Khanh Ninh

Thành viên mới
Tham gia
5/6/21
Bài viết
13
Được thích
-2
For j = 1 To Column_Draft
If j = 1 Then
If 0 < Sheets("Draft").Cells(2, j).Value < Lotsize Then Sheets("Draft").Cells(3, j).Value = 0
If Sheets("Draft").Cells(2, j).Value >= Lotsize Then Sheets("Draft").Cells(3, j).Value = Application.RoundDown(Sheets("Draft").Cells(2, j).Value / Lotsize, 0) * Lotsize
End If
If j > 1 And j < End_column And Sheets("Draft").Cells(2, j).Value > 0 Then
Total_old1 = Application.Sum(Sheets("Draft").Range("3:3"))
Total_new1 = Application.Sum(Sheets("Draft").Range(Cells(2, 1), Cells(2, j)))
Sheets("Draft").Cells(3, j).Value = Int((Total_new1 - Total_old1) / Lotsize) * Lotsize
End If
If j > 1 And j = End_column And Sheets("Draft").Cells(2, j).Value > 0 Then
Total_old2 = Application.Sum(Sheets("Draft").Range("3:3"))
Sheets("Draft").Cells(3, j).Value = QtyDay + QtyEndDate + QtyStartDate - Total_old2
End If
Next j

For j = 1 To Column_Draft
Sheets("Pro Finishing").Cells(Row_Paste, Column_Std + j - 1).Value = Sheets("Draft").Cells(3, j).Value
Next j
End If
 

File đính kèm

  • Input_Finishing plan & Sale order (Using).xlsm
    247.3 KB · Đọc: 7
Bạn này cũng thuộc diện không biết nói.
 
Upvote 0
Nếu đưa các lệnh vào khuôn khổ như mọi người khác, như:
PHP:
For j = 1 To Column_Draft
   If j = 1 Then
      If 0 < Sheets("Draft").Cells(2, j).Value < Lotsize Then Sheets("Draft").Cells(3, j).Value = 0
      If Sheets("Draft").Cells(2, j).Value >= Lotsize Then Sheets("Draft").Cells(3, j).Value = Application.RoundDown(Sheets("Draft").Cells(2, j).Value / Lotsize, 0) * Lotsize
   End If
   If j > 1 And j < End_column And Sheets("Draft").Cells(2, j).Value > 0 Then
      Total_old1 = Application.Sum(Sheets("Draft").Range("3:3"))
      Total_new1 = Application.Sum(Sheets("Draft").Range(Cells(2, 1), Cells(2, j)))
      Sheets("Draft").Cells(3, j).Value = Int((Total_new1 - Total_old1) / Lotsize) * Lotsize
   End If
   If j > 1 And j = End_column And Sheets("Draft").Cells(2, j).Value > 0 Then
      Total_old2 = Application.Sum(Sheets("Draft").Range("3:3"))   ' ← ← ← * * * '
      Sheets("Draft").Cells(3, j).Value = QtyDay + QtyEndDate + QtyStartDate - Total_old2
   End If
Next j
For j = 1 To Column_Draft
   Sheets("Pro Finishing").Cells(Row_Paste, Column_Std + j - 1).Value = Sheets("Draft").Cells(3, j).Value
Next j
End If
Thì sẽ thể hiện sự thân thiện của tác giả bài đăng với mọi người hơn!
Chủ bài đăng thử dịch sang tiếng Việt câu lệnh đó xem sao!
 
Upvote 0
Với tổng thể tình hình kết cấu code của bạn, tốt nhất là bạn giải thích nhu cầu, điền tay kết quả muốn có, và mọi người sẽ viết lại code cho bạn nhé.
 
Upvote 0
File có password. Vậy thì ... Bạc trắng lửa hồng:
Tình nghĩa đôi mình chỉ thế thôi saao?
Gặp gỡ chi rồi thoáng tựa chiêm bao
...
Một bước xa rời muôn kiếp ly tan
....
Xin lỗi, đang nghe Thanh Tuyền ...
 
Upvote 0
Chắc do câu hỏi nằm trong phần tiêu đề rồi đó bác
Code chỉ có một đoạn. Tiêu đề không có nói bị ở dòng nào.
Ở đấy mà đoán.

Chú thích Sử dung một đống hàm cọi Sheets("Draft") thì người ta set luôn ShDraft cho nó gọn.
- Đói tốn tài nguyên máy lục tìm Collection Sheets
- Ít bị lỗ chunhs tả, dễ debug.
Ở GPE này dân code thích dùng block With để đặt không gian chủ danh cho sheet. Nhưng với block làm nhiều thứ khác nhau thế này thì Không gian chủ danh dễ bị nhầm, và khó debug.
 
Upvote 0
Hehe. Nhân gian này ai cũng thích vậy sư phụ ơi...
Nếu chỉ căn cứ vào code bài 1 thì câu lệnh lỗi sửa thành
Mã:
Total_new1 = Application.Sum(Sheets("Draft").Range(Sheets("Draft").Cells(2, 1), Sheets("Draft").Cells(2, j)))
Còn lại có lỗi khác hay không thì tự chịu
 
Lần chỉnh sửa cuối:
Upvote 0
Tiểu khuyển tiêm đầu hoan/tham lộ hiệp.
(sửa câu đối xưa)
 
Upvote 0
File có password. Vậy thì ... Bạc trắng lửa hồng:
Tình nghĩa đôi mình chỉ thế thôi saao?
Gặp gỡ chi rồi thoáng tựa chiêm bao
...
Một bước xa rời muôn kiếp ly tan
....
Xin lỗi, đang nghe Thanh Tuyề

Code chỉ có một đoạn. Tiêu đề không có nói bị ở dòng nào.
Ở đấy mà đoán.

Chú thích Sử dung một đống hàm cọi Sheets("Draft") thì người ta set luôn ShDraft cho nó gọn.
- Đói tốn tài nguyên máy lục tìm Collection Sheets
- Ít bị lỗ chunhs tả, dễ debug.
Ở GPE này dân code thích dùng block With để đặt không gian chủ danh cho sheet. Nhưng với block làm nhiều thứ khác nhau thế này thì Không gian chủ danh dễ bị nhầm, và khó debug.
Em mới tự học nên không biết nhiều ạ. Mong anh/chị chỉ thêm.
Bài đã được tự động gộp:

Nếu chỉ căn cứ vào code bài 1 thì câu lệnh lỗi sửa thành
Mã:
Total_new1 = Application.Sum(Sheets("Draft").Range(Sheets("Draft").Cells(2, 1), Sheets("Draft").Cells(2, j)))
Còn lại có lỗi hay không thì tự chịu
Em đã sửa như Bác nói. đã OK ạ. Em cảm ơn Bác nhiều nhé!
 
Lần chỉnh sửa cuối:
Upvote 0
Upvote 0
Mọi lỗi dù nhẹ như lông mao cũng phải bị trừng hay phạt;
Chí ít là tỏ lời xin lỗi đến cộng đồng; Các bạn cố tình làm hư người ta còn chi nữa . . . .
 
Upvote 0
Web KT

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

Back
Top Bottom