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)
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)