Cách xóa nhanh dòng trong bảng tính có nhiều công thức (1 người xem)

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

Người dùng đang xem chủ đề này

vba_gpe

Thành viên thường trực
Tham gia
15/12/10
Bài viết
296
Được thích
44
Nghề nghiệp
Thất nghiệp
Chào anh chị trong diễn đàn
Mình có một thắc mắc như sau, nhờ anh chị hỗ trợ giúp.
Mình có 1 file excel khoản 500 dòng và khoản 200 cột.
Trong bảng tính thông thường chỉ là công thức excel bình thường, không chứa code, các hàm chủ yếu dùng là vlook từ 1 bảng khác và link đến 1 sheet khác. (Cụ thể file đính kèm).

Tuy nhiên, em thực hiện xóa số dòng trên bằng Excel thông thường và bằng VBA phải đợi rất lâu. Mặc dù khi dùng VBA em đã ngắt chế độ tính toán trước khi xóa nhưng cũng vẫn phải đợi lâu. (Cấu hình máy em Core i3, ram 8G, win 8.1 64 bit.)

Trong khi đó em thử paste value và xóa Excel mà không chứa công thức thì khoản 1000 dòng là rất nhanh.

Nhờ anh chị trên diễn đàn xem giúp có cách nào xóa số dòng ở trên nhanh nhất không ạ.

Em cảm ơn anh chị rất nhiều.
 

File đính kèm

Chào anh chị trong diễn đàn
Mình có một thắc mắc như sau, nhờ anh chị hỗ trợ giúp.
Mình có 1 file excel khoản 500 dòng và khoản 200 cột.
Trong bảng tính thông thường chỉ là công thức excel bình thường, không chứa code, các hàm chủ yếu dùng là vlook từ 1 bảng khác và link đến 1 sheet khác. (Cụ thể file đính kèm).

Tuy nhiên, em thực hiện xóa số dòng trên bằng Excel thông thường và bằng VBA phải đợi rất lâu. Mặc dù khi dùng VBA em đã ngắt chế độ tính toán trước khi xóa nhưng cũng vẫn phải đợi lâu. (Cấu hình máy em Core i3, ram 8G, win 8.1 64 bit.)

Trong khi đó em thử paste value và xóa Excel mà không chứa công thức thì khoản 1000 dòng là rất nhanh.

Nhờ anh chị trên diễn đàn xem giúp có cách nào xóa số dòng ở trên nhanh nhất không ạ.

Em cảm ơn anh chị rất nhiều.
Bạn muốn xóa dòng không có công thức? Tôi thấy trong dữ liệu của bạn, dòng nào cũng chứa công thức?
 
Upvote 0
Bạn muốn xóa dòng không có công thức? Tôi thấy trong dữ liệu của bạn, dòng nào cũng chứa công thức?
Dạ không.
Em muốn xóa toàn bộ dòng luôn ạ (nghĩa là đa phần là dòng chứa công thức), theo như trong file thì từ dòng số 11 đến dòng 478 ạ.
 
Upvote 0
Dạ không.
Em muốn xóa toàn bộ dòng luôn ạ (nghĩa là đa phần là dòng chứa công thức), theo như trong file thì từ dòng số 11 đến dòng 478 ạ.
Cái khó của bài toán của bạn là công thức gồm 2 loại:
+> Hàm Sum,..
+> Hàm Link dữ liệu từ các File khác(Đây cũng là công thức).
Vì vậy xóa thế nào khi các dòng của bạn đều là công thức?
Còn bạn, bạn xóa thủ công thế nào?
 
Upvote 0
Cái khó của bài toán của bạn là công thức gồm 2 loại:
+> Hàm Sum,..
+> Hàm Link dữ liệu từ các File khác(Đây cũng là công thức).
Vì vậy xóa thế nào khi các dòng của bạn đều là công thức?
Còn bạn, bạn xóa thủ công thế nào?
Dạ em xóa thủ công nghĩa là bôi từ dòng đầu đến dòng cuối, click phải chọn delete dòng thôi a.
Làm kiểu này là kiểu thông thường của excel, em đợi cũng rất lâu.
Lúc đầu em nghĩ do tính toán của các cell trong bảng tính này, nên em thử cho ngưng tính, rồi mới xóa dòng nhưng cũng đợi lâu.
Em cũng thử luôn chỉ clearcontents thôi mà cũng vẫn xoay.

Chưa biết cách nào mà làm 1 phát nó triệt hạ ngay. :(
 
Upvote 0
Dạ em xóa thủ công nghĩa là bôi từ dòng đầu đến dòng cuối, click phải chọn delete dòng thôi a.
Làm kiểu này là kiểu thông thường của excel, em đợi cũng rất lâu.
Lúc đầu em nghĩ do tính toán của các cell trong bảng tính này, nên em thử cho ngưng tính, rồi mới xóa dòng nhưng cũng đợi lâu.
Em cũng thử luôn chỉ clearcontents thôi mà cũng vẫn xoay.

Chưa biết cách nào mà làm 1 phát nó triệt hạ ngay. :(
Bạn thử với:
PHP:
Sub abc()
    On Error Resume Next
    Application.ScreenUpdating = False
    With Range("A11", Range("L" & Rows.Count).End(xlUp))
        .Value = .Value
        .EntireRow.Delete
    End With
    Application.ScreenUpdating = True
End Sub
 
Upvote 0
Bạn thử với:
PHP:
Sub abc()
    On Error Resume Next
    Application.ScreenUpdating = False
    With Range("A11", Range("L" & Rows.Count).End(xlUp))
        .Value = .Value
        .EntireRow.Delete
    End With
    Application.ScreenUpdating = True
End Sub
Em cảm ơn anh.
Em thử code rồi ạ. Vẫn xoay ạ.
Debug thì nó xoay đúng cái đoạn lấy value của toàn bộ cell trong vùng tính ạ. :(
 
Upvote 0
File của bạn có rất nhiều ô tô màu trắng. Bạn hãy bỏ tô màu đó trên các ô đi rồi xóa sẽ cực nhanh :)
 
Upvote 0
File của bạn có rất nhiều ô tô màu trắng. Bạn hãy bỏ tô màu đó trên các ô đi rồi xóa sẽ cực nhanh :)
Anh có thể điển hình giúp em vị trí nào được không ạ? :D
Em thử bôi đen hết vùng cần xóa, mặc định chữ màu đen, format tô màu về mặc định rồi mà vẫn bị chậm.
Anh thử mặc định lại ô theo ý anh nói, rồi đính kèm file đã chỉnh sửa của anh lên đây giúp em đc không ạ.
Em cảm ơn. :)
 
Upvote 0
Bạn xem các vùng sau nhé: Q479:XFD1048567, HL:XFD, Q2:XFD9
 
Upvote 0
Bạn xem các vùng sau nhé: Q479:XFD1048567, HL:XFD, Q2:XFD9
Hi anh.
Em thử rồi mà vẫn xoay.
Q479:XFD1048567: Phần này nằm ngoài vùng mình cần xóa mà anh nhỉ. Em nghĩ việc xóa từ dòng số 11 đến dòng 479 mình không can thiệp vào vùng này.
Trước khi xóa dòng, em thử bôi hết toàn bộ bảng tính (Từ dòng đầu đến cuối) , format em chỉnh như sau anh xem thử có đúng yêu cầu không nhé.
- Fill: Em chon Nofill
- Font: Backcolor em đưa về màu đen (màu mặc định).

Thử xóa lại dòng từ 11 đến 479, tốc độ vẫn không thay đổi, bánh xe vẫn cứ xoay tròn :(
 
Upvote 0
Tớ là up file bạn kiểm tra nhé. Nếu trên File này bạn xóa nhanh thì bạn phản hồi.

Vùng nằm ngoài phần bạn muốn xóa thì vẫn có "tác dụng" làm chậm bảng tính nhé :)
 

File đính kèm

Upvote 0
Chào anh chị trong diễn đàn
Mình có một thắc mắc như sau, nhờ anh chị hỗ trợ giúp.
Mình có 1 file excel khoản 500 dòng và khoản 200 cột.
Trong bảng tính thông thường chỉ là công thức excel bình thường, không chứa code, các hàm chủ yếu dùng là vlook từ 1 bảng khác và link đến 1 sheet khác. (Cụ thể file đính kèm).

Tuy nhiên, em thực hiện xóa số dòng trên bằng Excel thông thường và bằng VBA phải đợi rất lâu. Mặc dù khi dùng VBA em đã ngắt chế độ tính toán trước khi xóa nhưng cũng vẫn phải đợi lâu. (Cấu hình máy em Core i3, ram 8G, win 8.1 64 bit.)

Trong khi đó em thử paste value và xóa Excel mà không chứa công thức thì khoản 1000 dòng là rất nhanh.

Nhờ anh chị trên diễn đàn xem giúp có cách nào xóa số dòng ở trên nhanh nhất không ạ.

Em cảm ơn anh chị rất nhiều.
Chay thử code
Mã:
Sub GPE()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    sh1 = ActiveSheet.Name
    Sheets.Add Before:=Sheets(1)
    sh2 = ActiveSheet.Name
    Sheets(sh1).Range("A1:HK10").Copy Sheets(sh2).Range("A1")
    Sheets(sh1).Delete
    Sheets(sh2).Name = sh1
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub
 
Upvote 0
Tớ là up file bạn kiểm tra nhé. Nếu trên File này bạn xóa nhanh thì bạn phản hồi.

Vùng nằm ngoài phần bạn muốn xóa thì vẫn có "tác dụng" làm chậm bảng tính nhé :)
Dạ nhanh hơn so với ban đầu.
Em thử so sánh tốc độ xóa nhanh gấp 6 lần so với file cũ. :)
Cảm ơn anh.
 
Upvote 0
Web KT

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

Back
Top Bottom