File chứa công thức excel và code VBA bị chậm, nhờ mọi người giúp đỡ!

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

NguyenDang88

Thành viên mới
Tham gia
23/7/09
Bài viết
7
Được thích
3
Em chào cả nhà,

Trong file của em có chứa công thức excel (các cột tô vàng) và code vba.
File gốc gần 9,000 KB, code chạy không bị lỗi nhưng mỗi khi chạy code hoặc save thì hơi chậm.
Trong đó, đoạn code dưới đây là chậm nhất.
Em nhờ cả nhà xem giúp xem có bị lỗi chỗ nào không ạ.
(File đính kèm em đã xóa bớt dữ liệu để up lên nên test không còn chậm.)

Sub SAVEINPUT()

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

Sheet5.Range("B3:T3").AutoFilter
Sheet5.Range("B3:T3").AutoFilter
Dim a As Integer, Arr(), dArr(), i As Integer, j As Integer, jRow As Integer
a = Worksheets("INPUT").Cells(Rows.Count, 2).End(xlUp).Row '2 : cot B
If a < 4 Then

Exit Sub
End If

dArr = Range("B4:T" & a).Value
ReDim Arr(1 To a, 1 To 19)
jRow = 0
For i = 1 To UBound(dArr)
If dArr(i, 18) <> "" Then
jRow = jRow + 1
For j = 1 To 19
Arr(jRow, j) = dArr(i, j)
Next j
End If
Next i

If jRow Then
Sheet5.Range("B65536").End(xlUp).Offset(1).Resize(jRow, 19).Value = Arr
End If

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

ActiveWorkbook.Save
MsgBox "Saved!"
End Sub


(Hình ảnh chờ khi save)
1700466449709.png
 

File đính kèm

  • file bị chậm.xlsm
    1.6 MB · Đọc: 11
Code thì OK, chỉ có là mỗi khi chạy code xong lại save, nên tốc độ bị chậm (Do save).
Bỏ dòng đó đi, khi nào đóng file hẵng save 1 lần thôi.

PHP:
'ActiveWorkbook.Save
'MsgBox "Saved!"
End Sub
 
Upvote 0
Code thì OK, chỉ có là mỗi khi chạy code xong lại save, nên tốc độ bị chậm (Do save).
Bỏ dòng đó đi, khi nào đóng file hẵng save 1 lần thôi.

PHP:
'ActiveWorkbook.Save
'MsgBox "Saved!"
End Sub
dạ, em bỏ đoạn này ra rồi nhưng vẫn chậm. (file gốc gần 50,000 dòng x 4 cột công thức)
'ActiveWorkbook.Save
'MsgBox "Saved!"

và thử past value tất cả các cột chứa công thức excel thì nhanh hẳn ra.
Để em thay thế công thức excel bằng vba thử.

Cám ơn anh nhiều ạ
 
Upvote 0
dạ, em bỏ đoạn này ra rồi nhưng vẫn chậm. (file gốc gần 50,000 dòng x 4 cột công thức)
'ActiveWorkbook.Save
'MsgBox "Saved!"

và thử past value tất cả các cột chứa công thức excel thì nhanh hẳn ra.
Để em thay thế công thức excel bằng vba thử.

Cám ơn anh nhiều ạ
Nếu đã dùng VBA thì dùng VBA hết nhé bạn, data nhiều mà để công thức thì chậm lắm.
 
Upvote 0
Web KT

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

Back
Top Bottom