- Mình có đoạn code do GPE giúp đỡ, nhưng khi tăng số cột hoặc số dòng lên thì nó báo lỗi Out of memory (mình sử lí cho 966748 dòng, 100 cột). Mình nghĩ là do dung lượng file quá lớn lên khoảng gần 300Mb nên không lưu lại được. Nguyên nhân có thể là do trong code có tô màu cho kết quả tìm được dẫn đến dung lượng lớn bị out ra, nay nhờ GPE có thể giúp vô hiệu hóa phần tô màu (giảm dung lượng lưu) hoặc tối ưu code như thế nào ạ? (Mình dùng máy 2.20 GHz và Ram 12Gb)
- Mình thấy báo Out of memory chỗ đoạn code: Arr1 = Rng.Value
- Vì dung lượng file quá lớn nên mình không gửi được file lên. Mong GPE xem giúp! Xin cảm ơn GPE
- Mình thấy báo Out of memory chỗ đoạn code: Arr1 = Rng.Value
- Vì dung lượng file quá lớn nên mình không gửi được file lên. Mong GPE xem giúp! Xin cảm ơn GPE
Sub MaxBlanksInRows2()
Dim Arr1, Arr2, Rng As Range, dau As Long, iCot As Long, iCol As Long
Dim iRow As Long, i As Long, j As Long, t As Long, trong As Long
iCol = Cells(3, 1500).End(xlToLeft).Column
iRow = Cells(1000000, iCol - 101).End(xlUp).Row
Set Rng = Range(Cells(4, iCol - 100), Cells(iRow, iCol))
Rng.Select
Rng.Interior.ColorIndex = 0
Arr1 = Rng.Value
ReDim Arr2(1 To iRow - 3, 1 To 1)
For i = 1 To UBound(Arr1, 1)
dau = Cells(i + 3, iCol - 101).End(xlToRight).Column - iCol + 101
For j = dau To UBound(Arr1, 2)
If Arr1(i, j) = "" Then
t = t + 1
Else
If trong < t Then trong = t: iCot = j
t = 0
End If
Next
Arr2(i, 1) = trong
Range(Cells(i + 3, iCot + iCol - 102 - trong + 1), Cells(i + 3, iCot + iCol - 102)).Interior.ColorIndex = 33
trong = 0
iCot = 0
Next
Cells(4, iCol - iCol + 2).Resize(i - 1) = Arr2
End Sub