File Excel nặng quá làm cho không thể chạy nổi nữa

Liên hệ QC
Cái này dễ:
- Khởi động Excel
- Bấm Open và duyệt đến file của bạn
- Bấm mũi tên xổ xuống cạnh nút Open, chọn Open and Repair

Shape là nói chung tất cả các object. Để phân biệt từng loại, ta phải viết code "chỉ" trực tiếp đến loại đó
Ví dụ:
Mã:
Sub Test()

 Dim wks As Worksheet
 Set wks = ActiveSheet
 wks.Rectangles.Delete  ''<--- Xóa những shape thuộc loại Rectangle
 wks.Pictures.Delete      ''<--- Xóa những shape thuộc loại Picture

End Sub
vân vân...
Hoặc có thể dùng Type Property để xác định kiêu object
Mã:
Sub Test2()
  Dim shp As Shape
  For Each shp In ActiveSheet.Shapes
    MsgBox shp.Type, , shp.Name
  Next shp
End Sub
Vẽ nhiều loại object trên sheet rồi chạy code trên để xem chúng có Type là gì, từ đó mà loại trừ
Em đã làm theo những điều trên, và nó fát sinh 1 lỗi mới như sau:
Mở File của em vào Sheet TH, bấm nút "xóa hình" sau đó chọn cell D15 (cell này có Comment) thì File tự thóat Excel và khởi động lại, ĐÂY LÀ LỖI MÀ EM SỢ NHẤT!
cho em hỏi:
1/ Làm sao khắc fục lỗi trên?
2/ Trong 1 Fie có quá nhiều Comment thì làm sao liệt kê hết, có cách nào cho nó gọn không?
em cảm ơn!
'***************
----------------------------------------------

Mình được PHONG THẦN lúc nào không biết
Hì, em viết nhầm
Theo em nghĩ, BQT của GPE củng nên có 1 trang riêng để giới thệu "Quá trình hình thành & phát triển của GPE", 1 fần nói lên công lao đóng góp cho diễn đàn phát triển, trong đó có những người như Thầy & các Thầy cô & anh chị khác đã bỏ bao nhiêu công sức để có những bài viết hướng dẫn, phân tích ... & tìm tòi nâng cao mà không vụ lợi!. Vì Mr. Bill có sáng chế ra 1 chiếc Ô-tô đẹp và tiện nghi, nhưng kg có ai hướng dẫn để sử dụng nó thì chiếc xe này chỉ nằm ở fòng trưng bày mà thôi!

Như vậy, Thầy & những người khác được bầu là CÔNG THẦN của trang GPE thì đâu có gì quá đáng nhỉ!
Trên đây là những ý kiến thiển cận của em mà thôi, nếu có gì chưa đúng xin BQT GPE & các Thầy cô, anh chị bỏ qua!
Em cảm ơn!
 

File đính kèm

  • XoaHinh.rar
    48.3 KB · Đọc: 25
Em đã làm theo những điều trên, và nó fát sinh 1 lỗi mới như sau:
Mở File của em vào Sheet TH, bấm nút "xóa hình" sau đó chọn cell D15 (cell này có Comment) thì File tự thóat Excel và khởi động lại, ĐÂY LÀ LỖI MÀ EM SỢ NHẤT!
cho em hỏi:
1/ Làm sao khắc fục lỗi trên?

Chắc Office của bạn có vấn đề chứ tôi thử trên máy tôi làm gì có chuyện tự thoát
(Chắc dùng thằng 2007 tào lao đây)
---------------------------------
2/ Trong 1 Fie có quá nhiều Comment thì làm sao liệt kê hết, có cách nào cho nó gọn không?
em cảm ơn!
Muốn liệt kê thì bạn cứ dùng vòng lập mà làm thôi (trong tầm tay bạn)... Còn chuyện GỌN gì gì đó tôi không hiểu (ý bạn muốn gọn nghĩa là thế nào?)
 
Vậy với trường hợp của mình thì xử lý thế nào đc các bác. Tình hình là e đã tìm hiểu và biết được nguyên nhân file này của em bị nặng là do số lượng Object quá lớn. Đến nỗi sử dụng cách nào cũng ko thể xóa đc. Cả dùng bằng lệnh, cả dùng bằng tay, cả Ctrl + G... cứ mỗi lần thao tác xong thì xoay mãi xoay mãi (ko biết đến lúc nào), dùng đoạn code trên vẫn treo :(. Các bác có cách nào khác ngoài cut sang một file khác không. Thanks. Link file đây ah.

http://www.mediafire.com/?z70c4bll70gy5yp

Hình như nó có tới gần 4k các shapes thì phải.
 
Vậy với trường hợp của mình thì xử lý thế nào đc các bác. Tình hình là e đã tìm hiểu và biết được nguyên nhân file này của em bị nặng là do số lượng Object quá lớn. Đến nỗi sử dụng cách nào cũng ko thể xóa đc. Cả dùng bằng lệnh, cả dùng bằng tay, cả Ctrl + G... cứ mỗi lần thao tác xong thì xoay mãi xoay mãi (ko biết đến lúc nào), dùng đoạn code trên vẫn treo :(. Các bác có cách nào khác ngoài cut sang một file khác không. Thanks. Link file đây ah.

http://www.mediafire.com/?z70c4bll70gy5yp

Hình như nó có tới gần 4k các shapes thì phải.

File của bạn có trên 100,000 shape, nặng là phải rồi
Đã "dọn sạch" cho bạn rồi đấy!
Từ 20MB chỉ còn lại 56KB, khiếp thật!
 

File đính kèm

  • thang 05 - Copy.xls
    56 KB · Đọc: 15
Hix cảm ơn bác. Bác có thể chỉ e cách làm đc không. Ở cty e có đến cả trăm file bị như vậy. Máy e cấu hình cũng khủng nhưng đụng vào là treo thôi.
 
Hix cảm ơn bác. Bác có thể chỉ e cách làm đc không. Ở cty e có đến cả trăm file bị như vậy. Máy e cấu hình cũng khủng nhưng đụng vào là treo thôi.

Dùng code xóa thôi, nhưng xóa 1 lần 10000 object thôi (xóa hết 1 lần nó treo)
Ví dụ
Mã:
Sub DelObjects()
  Dim i As Long, wks As Worksheet
  On Error Resume Next
  Set wks = ActiveSheet
  For i = 1 To 10000
    wks.Shapes(1).Delete
  Next
  MsgBox "Còn " & wks.Shapes.Count & " objects"
End Sub
Đứng tại 1 sheet nào đó, gọi code chạy... chờ 1 lúc sẽ xuất hiện thông báo. Nhìn thông báo, nếu thấy vẫn còn object thì chạy code tiếp đến khi nào thấy thông báo "Còn 0 objects" thì thôi
Chuyển sang sheet khác và chạy code tiếp... (Làm vậy với tất cả các sheet)
 
OK. Thanks bác nhiều nhiều. Để e thử xem.
 
Dùng code xóa thôi, nhưng xóa 1 lần 10000 object thôi (xóa hết 1 lần nó treo)
Ví dụ
Mã:
Sub DelObjects()
  Dim i As Long, wks As Worksheet
  On Error Resume Next
  Set wks = ActiveSheet
  For i = 1 To 10000
    wks.Shapes(1).Delete
  Next
  MsgBox "Còn " & wks.Shapes.Count & " objects"
End Sub
Đứng tại 1 sheet nào đó, gọi code chạy... chờ 1 lúc sẽ xuất hiện thông báo. Nhìn thông báo, nếu thấy vẫn còn object thì chạy code tiếp đến khi nào thấy thông báo "Còn 0 objects" thì thôi
Chuyển sang sheet khác và chạy code tiếp... (Làm vậy với tất cả các sheet)

OK OK..Em làm đc rồi... :)) Thanks bác ndu96081631 nhiều nhé.
 
Web KT
Back
Top Bottom