Vòng lặp chậm khi phải duyệt từng cell trên 3000 dòng (1 người xem)

  • Thread starter Thread starter rilie
  • Ngày gửi Ngày gửi
Liên hệ QC

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

rilie

Thành viên mới
Tham gia
7/6/17
Bài viết
12
Được thích
0
Giới tính
Nam
HIện tại mình đang dùng vòng lặp và select Case như bên dưới để giảm dung lượng file và công thức, nó thật sự rất hiểu quả khi dữ liệu cỡ 1000 dòng
Nhưng khi mình để dữ liệu cỡ 4000 dòng thì thời gian để chạy duyệt qua từng ô có khi lên đến 20phút, có khi hơn.
Mình có tìm đọc rất nhiều bài trên diễn đàn nhưng không có hướng nào tốt.
Nhờ A/C chỉ giúp hướng nào tốt hơn để cải thiện thời gian tính toán...

For i = 1 To 1000
tukhoa = Cells(i, 239)
Select Case tukhoa
Case "A","B",...
Cells(i, 272) = ( s*1+w ) công thức +-*/
Cells(i, 273) = ( ......)
Cells(i, 274) = ( ......)
Case "C","D",
Cells(i, 272) = ( ......)
Cells(i, 273) = ( ......)
Cells(i, 274) = ( ......)
Case "E","F",
Cells(i, 272) = ( ......)
Cells(i, 273) = ( ......)
Cells(i, 274) = ( ......)
.......
 
HIện tại mình đang dùng vòng lặp và select Case như bên dưới để giảm dung lượng file và công thức, nó thật sự rất hiểu quả khi dữ liệu cỡ 1000 dòng
Nhưng khi mình để dữ liệu cỡ 4000 dòng thì thời gian để chạy duyệt qua từng ô có khi lên đến 20phút, có khi hơn.
Mình có tìm đọc rất nhiều bài trên diễn đàn nhưng không có hướng nào tốt.
Nhờ A/C chỉ giúp hướng nào tốt hơn để cải thiện thời gian tính toán...

For i = 1 To 1000
tukhoa = Cells(i, 239)
Select Case tukhoa
Case "A","B",...
Cells(i, 272) = ( s*1+w ) công thức +-*/
Cells(i, 273) = ( ......)
Cells(i, 274) = ( ......)
Case "C","D",
Cells(i, 272) = ( ......)
Cells(i, 273) = ( ......)
Cells(i, 274) = ( ......)
Case "E","F",
Cells(i, 272) = ( ......)
Cells(i, 273) = ( ......)
Cells(i, 274) = ( ......)
.......
Cho cái file lên và nói rõ ý bạn muốn làm bạn viết cái demo code thế này ai mà biết bạn làm cái gì để hỗ trợ.Nếu không muốn đưa file lên thì mình gợi ý là.Không nên dùng trực tiếp ở excel nếu dữ liệu nhiều cho vào mảng sử lý xong gán dữ liệu vào excel.
 
Upvote 0
Nếu bạn đang mò mẵm VBA thì bạn nên bỏ qua cái vòng lặp đó đi, vì nó thực hiện trực tiếp lên Cell trong vòng lặp,
và công thức đến hơn 3000 dòng, và vài cột nữa thì càng nên bỏ đi, mà dùng VBA tính toán xong mới đưa kết quả vào Trang tính.
 
Upvote 0
Bạn gán cả cái bọn đó vào mảng rồi dùng vòng lặp với mảng ấy
 
Upvote 0
Web KT

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

Back
Top Bottom