Lỗi chèn dòng chậm trong excel

  • Thread starter Thread starter Luong24
  • Ngày gửi Ngày gửi
Liên hệ QC

Luong24

Thành viên mới
Tham gia
9/9/22
Bài viết
17
Được thích
2
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 ạ!
 

File đính kèm

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 ạ!
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
 
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 vậy bác ạ
Vấn đề là có 2 sheet nữa chạy lệnh vẫn bình thường, rất nhanh, chèn lên hơn 1.4k dòng vẫn nhanh bình thường, chỉ có sheet này là bị chậm, kể cả từ trước khi làm marco cũng vậy..
Với lại tiện đây cho mình hỏ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.
 
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ấ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 độ.
1663160298332.png
1663160320836.png
 
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
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
 
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
Mình đã tự làm được rồi, cảm ơn mn đã giúp đỡ nhiều!
Sub ChendongPOWER()
'B1: gan bien
Dim i As Long
Dim lr As Long
lr = Sheets("POWER").Range("F" & Rows.Count).End(xlUp).Row

'B2: Vong lap
With Sheets("POWER")
For i = lr To 4 Step -1
If .Range("J" & i) = "NEW" And Range("J" & i + 1) <> "" Then
.Rows(i + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End If
Next i
End With
End Sub
 
Web KT

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

Back
Top Bottom