Thử cho vòng lặp chạy từ dưới lên xem sao.Chào mọi người!
E có file exel khi chèn thêm dòng rất chậm, mặc dù đã xóa hết công thức, data đi nhưng vẫn chậm
Nhờ mọi người xem giúp e với ạ
Em cảm ơn nhiều ạ!
With Sheets("123")
For i = lr To 4 Step -1
If .Range("J" & i) = "NEW" Then
.Rows(i + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End If
Next i
End With
Vẫn vậy bác ạThử cho vòng lặp chạy từ dưới lên xem sao.
Mã:With Sheets("123") For i = lr To 4 Step -1 If .Range("J" & i) = "NEW" Then .Rows(i + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove End If Next i End With
Vấn đề nằm ở Conditional Formatting có nhiều câu lệnh trùng lặp đây là nguyên nhân chính dẫn đến tốc độ bị chậm khi mỗi lần chèn thêm dòng. Ngoài ra những NAME bị lỗi thì bạn xóa đi vì nó cũng ảnh hưởng đến tốc độ.E có file exel khi chèn thêm dòng rất chậm, mặc dù đã xóa hết công thức, data đi nhưng vẫn chậm
Vâng, cảm ơn bác nhiều ạVấn đề nằm ở Conditional Formatting có nhiều câu lệnh trùng lặp đây là nguyên nhân chính dẫn đến tốc độ bị chậm khi mỗi lần chèn thêm dòng. Ngoài ra những NAME bị lỗi thì bạn xóa đi vì nó cũng ảnh hưởng đến tốc độ.
View attachment 281021
View attachment 281022
Mình đã tự làm được rồi, cảm ơn mn đã giúp đỡ nhiều!Vâng, cảm ơn bác nhiều ạ
Cho mình hỏi thêm vấn đề ở trên với ạ
Nếu muốn sửa lệnh trên là : Cột J có giá trị là NEW thì chèn thêm 1 dòng nhưng nếu dưới cột J là 1 ô trống không có dữ liệu thì sẽ không chèn dòng nữa.
Đây là code ạ:
Sub Chendong()
'B1: gan bien
Dim i As Long
Dim lr As Long
lr = Sheets("POWER").Range("F" & Rows.Count).End(xlUp).Row
'B2: Vong lap
For i = 7 To lr * 2
With Sheets("POWER")
If .Range("J" & i) = "NEW" Then
.Rows(i + 1 & ":" & i + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
i = i + 1
End If
End With
Next i
End Sub