Code không thể chạy, nếu lọc cho 200 cột. Lỗi Out of memory sửa thế nào? (1 người xem)

Liên hệ QC

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

phu.nguyencenter

Thành viên mới
Tham gia
6/10/11
Bài viết
34
Được thích
4
Hello ace

Mình sử dụng code, được viết từ các cao thủ của GPE.
Đối với, col 1 - 14 chay OK, nhưng khi sửa lại để chạy cho tới 200 column thì báo lỗi là Out of memory.
Nhờ các cao thủ chỉ giáo dùm cần phải sửa thế nào nhi?

Thank you & Best regards,


PHP:
Option Explicit


Public Sub LocLOc()
Dim D, Vung, I, J, Mg, K
Set D = CreateObject("scripting.dictionary")
Vung = Sheets("Wires").Range(Sheets("Wires").[B9], Sheets("Wires").[B65000].End(xlUp)).Resize(, 23)
ReDim Mg(1 To UBound(Vung), 1 To 16)
For I = 1 To UBound(Vung)
If Not D.exists(Vung(I, 1)) Then
K = K + 1
D.Add Vung(I, 1), K
Mg(K, 1) = Vung(I, 1): Mg(K, 2) = Vung(I, 2)
For J = 1 To 14
If Vung(I, J + 9) <> "" Then Mg(K, J + 2) = Vung(I, J + 9)
Next J
Else
For J = 1 To 14
If Vung(I, J + 9) <> "" Then Mg(K, J + 2) = Vung(I, J + 9)
Next J
End If
Next I
[B9:Q65000].ClearContents
[B9].Resize(K, 16) = Mg
Range([B9], [B65000].End(xlUp)).Offset(, -1) = [Row(A:A)]
End Sub
 
Chỉnh sửa lần cuối bởi điều hành viên:
Phải xem cấu trúc dữ liệu thế nào chứ, bạn hỏi mỗi câu chạy tới 200 thì cũng khó trả lời, mở rộng chạy được đến 200 cột biết đâu lại lỗi cái khác thì sao???
 
Upvote 0
Hello ace

Mình sử dụng code, được viết từ các cao thủ của GPE.
Đối với, col 1 - 14 chay OK, nhưng khi sửa lại để chạy cho tới 200 column thì báo lỗi là Out of memory.
Nhờ các cao thủ chỉ giáo dùm cần phải sửa thế nào nhi?

Thank you & Best regards,


PHP:
Option Explicit


Public Sub LocLOc()
Dim D, Vung, I, J, Mg, K
Set D = CreateObject("scripting.dictionary")
Vung = Sheets("Wires").Range(Sheets("Wires").[B9], Sheets("Wires").[B65000].End(xlUp)).Resize(, 23)
ReDim Mg(1 To UBound(Vung), 1 To 16)
For I = 1 To UBound(Vung)
If Not D.exists(Vung(I, 1)) Then
K = K + 1
D.Add Vung(I, 1), K
Mg(K, 1) = Vung(I, 1): Mg(K, 2) = Vung(I, 2)
For J = 1 To 14
If Vung(I, J + 9) <> "" Then Mg(K, J + 2) = Vung(I, J + 9)
Next J
Else
For J = 1 To 14
If Vung(I, J + 9) <> "" Then Mg(K, J + 2) = Vung(I, J + 9)
Next J
End If
Next I
[B9:Q65000].ClearContents
[B9].Resize(K, 16) = Mg
Range([B9], [B65000].End(xlUp)).Offset(, -1) = [Row(A:A)]
End Sub
Bạn đưa bài & code bạn sửa để chạy 200 cột lên xem sao
Nhìn code này....quen quá
Híc
 
Upvote 0
Web KT

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

Back
Top Bottom