Excel Chạy Rất Chậm

  • Thread starter Thread starter exel2007
  • Ngày gửi Ngày gửi
Liên hệ QC
Cám ơn bác Du rất nhiều! Tuy nhiên mấy bữa nay nó chạy chậm quá, tức điên lên tưởng thằng nào gửi vài con vi rút, mình cài lại win và remove cái ofice 2003 luôn rồi bác ạ. Đúng cái này là "chết vì thiếu hiểu biết"
 
Lần chỉnh sửa cuối:
Cám ơn ptm0412 nhiều nhé!

Cho mình hỏi, nó có tới hơn ba chín ngàn cái thì mình sửa quách cái code từ 1-10.000 luôn được không? Trước khi hỏi không có can đảm thử, sợ nó toi luôn.

Mình hỏi thêm là, cứ copy cai code của bạn vào trong phần module là nó tự động chạy phải không? Bạn thông cảm mình hỏi câu này, trình độ VB của mình mới ở hang vịt thôi.
 
Cám ơn ptm0412 nhiều nhé!
Cho mình hỏi, nó có tới hơn ba chín ngàn cái thì mình sửa quách cái code từ 1-10.000 luôn được không? Trước khi hỏi không có can đảm thử, sợ nó toi luôn.
Mình hỏi thêm là, cứ copy cai code của bạn vào trong phần module là nó tự động chạy phải không? Bạn thông cảm mình hỏi câu này, trình độ VB của mình mới ở hang vịt thôi.
Vấn đề nằm ở chổ: Bạn đã xóa bằng tay không được (treo máy) nên sư phụ ptm0412 mới đề xuất giải pháp XÓA TỪ TỪ, mỗi lần 1000 cái thôi ---> Nếu bạn sửa thành 10,000 thì... Ẹc... Ẹc... ăn chắc vũ như cẩn (nó lại treo máy)
Còn tôi, dùng Excel 2003 để xóa lại không bị hiện tượng treo này (may quá)
 
Sheet H có 39697 Object dạng rectangle.
Sheet House có 13495 cái.

Bạn dùng code này để xoá chúng, mỗi lần xoá 1000 cái cho đỡ sốt ruột:

PHP:
Sub del()
For i = 1 To 1000
ActiveSheet.Shapes(i).Delete
Next
End Sub

Còn nếu can đảm muốn xem nó là cái giống gì thì chạy code này, thử với 100 cái:

PHP:
Sub abc()
For i = 1 To 100
With ActiveSheet.Shapes(i)
.Left = 0
.Top = Cells(i, 1).Top
.Width = Cells(i, 1).Width
.Height = Cells(i, 1).Height / 2
.Fill.ForeColor.SchemeColor = 10
End With
Next
End Sub

Chào ptm0412

Bạn chỉ luôn cho cách làm cái code này chạy, mình copy nó vô phần module, save lại thành file .xlsm, uống hết 1 ly cà phê mà nó vẫn còn chậm? ( uống cà phê cũng có hơi vội vàng vì đang cần gấp mà, nhưng dù sao cũng mất cỡ chừng hết.... thới gian uống 1 ly cà phê)....

Đùa tí cho tỉnh táo bạn đừng giận..
 
Vấn đề nằm ở chổ: Bạn đã xóa bằng tay không được (treo máy) nên sư phụ ptm0412 mới đề xuất giải pháp XÓA TỪ TỪ, mỗi lần 1000 cái thôi ---> Nếu bạn sửa thành 10,000 thì... Ẹc... Ẹc... ăn chắc vũ như cẩn (nó lại treo máy)
Còn tôi, dùng Excel 2003 để xóa lại không bị hiện tượng treo này (may quá)

Bác ơi, bác cho hỏi luôn là bác chuyển sang 2003 rồi cũng xoá y như anh Tuấn chỉ phải không? Mình đã làm như bác bảo, chuyển sang 2003 ( hihi, remove cái ốp phít 2003 rồi nhưng mà vẫn chuyển được) làm y chang như vậy và nó vẫn thành hình cái vòng tròn quay từ từ bác ơi. Nói thiệt là máy ở công ty cũng hơi cùi. Bác làm cái này mất bao lâu vậy bác?

Bác cho hỏi thêm là làm cách xoá từ từ như sư phụ ptm0412 thì nó chậy mật bao lâu, dòm 2 cái file chạy vòng vòng hoài đau tim quá...

Hỏi thêm nữa là nếu mình dùng cái file bác đã chỉnh sửa copy đè lên cái file của mình thì cũng làm mất hết các objects đang có chứ?

Cám ơn bác nhiều!
 
Lần chỉnh sửa cuối:
Không cần module, không cần save as xlsm, không cần gì cả.
Bạn trở ra quán cafe. Kêu 1 ly đen không đường.
Mở file lên
Copy code vào VBA, sheet nào cũng được, workbook cũng được. Để nguyên số 1000.
Nhấn nút Run trên toolbar hoặc nhấn F5
Uống 1 hớp nhỏ cafe
Rít 1 hơi thuốc lá. Xong 1000 chú.
Nhấn F5 chạy lần 2
Lại 1 hớp nhỏ cafe, 1 hơi thuốc lá.
....

Hết sheet này, thì quay ra Excel, chọn sheet kế (chỉ chọn cho mở ra thôi, không đụng đến celll xiếc gì hết)
Quay ra VBA nhấn F5 chạy tiếp.

....

Xoá hết rồi, xoá luôn macro, lưu xlsx bình thường.
 
Bác ơi, bác cho hỏi luôn là bác chuyển sang 2003 rồi cũng xoá y như anh Tuấn chỉ phải không? Mình đã làm như bác bảo, chuyển sang 2003 ( hihi, remove cái ốp phít 2003 rồi nhưng mà vẫn chuyển được) làm y chang như vậy và nó vẫn thành hình cái vòng tròn quay từ từ bác ơi. Nói thiệt là máy ở công ty cũng hơi cùi. Bác làm cái này mất bao lâu vậy bác?
Vâng! Tôi làm giống vậy! Tức Ctrl + G\Special và check mục Objects, bấm OK rồi bấm nút Delete trên bàn phím
Nhưng như tôi đã nói ở trên:
- Tôi Save As file thành xls
- Xong, tôi mở file xls trên bằng Excel 2003
Vậy nếu bạn lại mở file xls trên bằng Excel 2007 thì... cũng bằng không
----------------
Làm theo cách tôi vừa nói ở trên, xóa hết Objects trong vòng 10s (vấn đề là bạn phải có Office 2003)
------------------------------
Xoá hết rồi, xoá luôn macro, lưu xlsx bình thường.
Thậm chí là khỏi cần làm gì... cứ lưu bình thường là macro sẽ tự (bị) xóa
Ẹc... Ẹc...
 
Lần chỉnh sửa cuối:
Thậm chí là khỏi cần làm gì... cứ lưu bình thường là macro sẽ tự (bị) xóa
Ẹc... Ẹc...
Lưu bình thường nó cũng hỏi lôi thôi, lại chạy lên GPE hỏi nên nhấn Yes hay No. (Khà khà, dự phòng cả cho chuyện đó nữa mà)

Lưu ý là với cách select Object rồi xoá bằng tay, nếu không biết cách sẽ không xoá được những object ẩn. Xoá object hiện trước, vào option cho hiện và xoá object ẩn sau. Chứ file đang ì ạch vậy, lại còn vào option cho hiện ra hết rồi mới xoá, thì e rằng 1 ly cafe không đủ.

Xoá bằng VBA thì bảo đảm xoá cả object ẩn.
 
Không cần module, không cần save as xlsm, không cần gì cả.
Bạn trở ra quán cafe. Kêu 1 ly đen không đường.
Mở file lên
Copy code vào VBA, sheet nào cũng được, workbook cũng được. Để nguyên số 1000.
Nhấn nút Run trên toolbar hoặc nhấn F5
Uống 1 hớp nhỏ cafe
Rít 1 hơi thuốc lá. Xong 1000 chú.
Nhấn F5 chạy lần 2
Lại 1 hớp nhỏ cafe, 1 hơi thuốc lá.
....

Hết sheet này, thì quay ra Excel, chọn sheet kế (chỉ chọn cho mở ra thôi, không đụng đến celll xiếc gì hết)
Quay ra VBA nhấn F5 chạy tiếp.

....

Xoá hết rồi, xoá luôn macro, lưu xlsx bình thường.

Hahhaha, được rồi, được rồi! Thì ra là phải run nữa mà mình không biết. Mình khoái uống cà phê không đường nhưng không bie61t hút thuốc, thay vào đó mình ngồi ngắm em gái bán cà phê......

Nhờ ngắm ẻm mình mới nghiệm ra điều này, mình chạy cái code tô màu mấy cái objects của bạn, thấy hiện ra một đống đỏ lè nhưng chỉ nằm ở cột A thôi, và cũng chừng từ dòng 100 đổ lại. Bạn nói sheet H chừng 39 ngàn cái, theo mình tính phải hớp chừng 40 ngụm cà phê mới đủ, tính ra khoảng 10 ly. Uống 10 ly lúc 8 giờ tối chác chết nên mình uống ăn gian...... mới uống có 1 ly, nói chung là bấm run chừng dưới 1 chục lần là mấy cái đống đỏ lè đó nó tiêu hết trơn rồi.

Vậy có phải là mình xoá 1000 cái nó khuyến mãi thêm 3000 nữa không? hay còn mấy chú objects nào khác trong đó mà mình không biết?

Bạn cho mình cái code đếm còn bao nhiêu chú đi để mình bấm run tiếp. Hiện giờ bấm run thì nó vẫn còn chạy, nhưng không xem được mấy chú kia "đai" đến đâu cũng kém phần thú vị....

Làm phiền hoài bạn đừng giận nhé!
 
Cái đoạn code tô màu đỏ lè đó, nó chỉ tô 100 ku đầu tiên, và lôi về hết cột A, mỗi cái resize bằng 1 nửa cell cho bạn dễ ngắm. Chứ nó nằm lung tung khắp nơi và không bằng nhau như vậy đâu.

Quên nói bạn 1 điều là, cái số lẻ ngàn trong đợt chạy cuối cùng ấy, ngắm ẻm chục lần mới hết, vì 1 lần tuy gọi là 1000, nhưng nó chỉ xoá 1 nửa cái số lẻ đó.
39 lần, thì hết đủ 39000 ku, còn hơn 900 ku thì bị vầy: mỗi lần chạy xoá 1 nửa số, dừng báo lỗi. Chạy lại, xoá 1 nửa số còn lại. Cứ thế, ngắm ẻm 1 chục lần.

Hoặc là bạn xài 1 trong 2 code này cho cái lẻ ngàn cuối cùng:

PHP:
Sub del2()
MsgBox "Còn " & ActiveSheet.Shapes.Count & " ku"
For i = ActiveSheet.Shapes.Count to 1 step -1
ActiveSheet.Shapes(i).Delete
Next
MsgBox "Còn " & ActiveSheet.Shapes.Count & " ku"
End Sub
PHP:
Sub del3()
MsgBox "Còn " & ActiveSheet.Shapes.Count & " ku"
For Each Shp in ActiveSheet.Shapes
Shp.Delete
Next
MsgBox "Còn " & ActiveSheet.Shapes.Count & " ku"
End Sub
Câu lệnh MsgBox là thông báo số object còn lại trước và sau khi chạy code.
 
Lần chỉnh sửa cuối:
Cái đoạn code tô màu đỏ lè đó, nó chỉ tô 100 ku đầu tiên, và lôi về hết cột A, mỗi cái resize bằng 1 nửa cell cho bạn dễ ngắm. Chứ nó nằm lung tung khắp nơi và không bằng nhau như vậy đâu.

Quên nói bạn 1 điều là, cái số lẻ ngàn trong đợt chạy cuối cùng ấy, ngắm ẻm chục lần mới hết, vì 1 lần tuy gọi là 1000, nhưng nó chỉ xoá 1 nửa cái số lẻ đó.

Hehehe, cám ơn sư phụ!

Cái code của sư phụ thiếu & phia sau chữ "còn" phải không? Copy vào chạy luôn nó báo lỗi đấy sư phụ. Nhưng mình thêm dấu & vào rối chạy ok rồi.

không cần ngắm ẻm chục lần nữa vì mình đối số 1000 thành 3000 rồi, cám ơn sư phụ thật nhiều lần nữa nhé!
 
Các bác cho em hỏi: các file excel của em dạo này chạy chậm lắm, ngồi chờ để làm 1 thao tác đến phát bực... hix... e thử tìm object j đó để xóa nhưng toàn báo là "no object found"... VB thì em mù tịt...
Các bác bắt bệnh hộ em với....
Thanks!
 
Các bác cho em hỏi: các file excel của em dạo này chạy chậm lắm, ngồi chờ để làm 1 thao tác đến phát bực... hix... e thử tìm object j đó để xóa nhưng toàn báo là "no object found"... VB thì em mù tịt...
Các bác bắt bệnh hộ em với....
Thanks!

Bạn xem tuyệt chiêu số 15
tuyệt chiêu 15 đã viết:
Những bí quyết sau đây có thể giúp bạn nếu bạn có 1 file Excel có kích thước lớn bất thường.
Có khi nào bạn bị bội thực do cố ăn mà chưa tiêu hoá kịp chưa? File Excel cũng thế. Nó bị phình ra là do bạn cố nhồi nhét đủ thứ vào bắt nó phải thực hiện, nó phải nuốt trọng chứ không kịp nhai, hậu quả là nó sẽ không làm việc như ý muốn.


Ngoài ra bạn đã kiểm tra name rác chưa?

Nếu vẫn không được thì bạn phải gởi file lên thôi.
 
Copy trong exel 2007 rất chậm các pac ho trợ em voi

Copy trong exel 2007 rat cham
Minh cu copy 4 dong nao day tren file nay rat cham
Copy nhieu dong cang cham, em gưi file dinh kem mong cac pác guip do
Các pac giup em voi
 
Tôi chỉ các bạn thêm 1 mẹo đễ nhận biết sự tồn tại của Object... Khi các bạn bấm Ctrl + G\Special\Objects, OK xong, nếu thấy mấy tính im re thì tất nhiên trong file có Object rồi, tuy nhiên rất khó nhìn thấy nó... Vậy lúc này các bạn hãy chọn và tô màu cho nó, sẽ phát hiện dc ngay...
Chẳng hạn như tô màu đỏ, khi ấy ta sẽ thấy có hàng đóng những chấm đỏ li ti trên bảng tính... Nhiều đến mức kéo Scroll bar ko chạy nỗi luôn... Nhưng khi bấm nút Delete trên bàn phím thì bảng tính tự nhiên trở nên mượt mà ngay!
----------------
Lưu ý thêm: Các Object thuộc thanh Control Toolbox thì ko xài chiêu này dc... Trước tiên bạn phải bật chế độ Design Mode lên, sau đó mới thực hiện các bước tôi đã nói ở trên... nếu ko thì dù Object có tồn tại, máy tính vẫn báo "No objects found"
Mến
ANH TUẤN
Chào anh Tuấn. mình có cũng gặp trường hợp là dung lượng file excel lớn bất thường. File gốc chỉ có 1 MB, nhưng mình làm động tác copy dữ liệu không lấy dữ liệu ẩn (theo cách F5/special/ visible cell only) thì khi copy và pase thì file mới lớn hơn 80MB, anh Tuấn có thể chỉ cách khắc phục vấn đề này không? cảm ơn anh.
 
Có bác nào pro làm ơn xem dùm em file này với được không?
File có dung lượng lớn và thao tác rất chậm.
Mình cảm ơn nhiều!
 
Các bác giúp em file này với.
Của em cũng bị chạy chậm mà chưa rõ nguyên nhân.
http://www.mediafire.com/view/natckqmava9way2/TOTAL_REPORT.xlsx

chào bạn,

- nguyên nhân là do file bạn có quá nhiều textbox thừa (rác) + row, column thừa
- để kiểm tra số liệu cuối cùng của 1 sheet bạn dùng tổ hợp phím Ctrl+End

Sheet BUY_Cntr:
- thực tế chỉ 372 row, trong khi check ô cuối cùng chứa số liệu lại là WVV32111 (-> thừa rất nhiều row, column)
- có đến 18299 textbox rác.

SELL-Cntr:
- vị trí cuối ở tại WVX33870
- cũng có textbox an?

Các sheet khác, bạn cũng kiểm tra tương tự vậy.

'- - -
- mình đã dùng code để xóa các shape tại Sheet BUY_Cntr, SELL-Cntr. Bạn vào copy comment của file cũ qua nhé.
- nhưng vẫn chưa biết cách xóa các row, column thừa +-+-+-+--> nếu có thể bạn tạo 1 sheet mới chuyển số liệu qua (chỉ copy số liệu, ko copy nguyên sheet) rồi xóa sheet cũ đi.

bạn tải file mới về check xem có cải thiện tốc độ hơn ko? :-=
https://www.mediafire.com/?yyn72jbo699g2c2
'- - -
tham khảo thêm bài sau để biết cách xóa các shape:
File Excel khi làm rất nặng
 
Lần chỉnh sửa cuối:
File exel chạy rất chậm

Các bác ơi giúp em với, em kẹt vụ này mấy hôm nay rồi.
File exel này của em chạy rất nặng ( máy công ty toàn core i3) .
Bật lên mất 5 phút. Mà lưu cũng mất 5 phút.
Các pro giúp em xin thuốc nhé .
Chỉ luôn dùm mình cách sửa nhé vì còn 8 file như vậy nữa :(
Nó đây ạ : http://www.mediafire.com/download/9g...%E1%BA%A9n.rar
 
Các bác ơi giúp em với, em kẹt vụ này mấy hôm nay rồi.
File exel này của em chạy rất nặng ( máy công ty toàn core i3) .
Bật lên mất 5 phút. Mà lưu cũng mất 5 phút.
Các pro giúp em xin thuốc nhé .
Chỉ luôn dùm mình cách sửa nhé vì còn 8 file như vậy nữa :(
Nó đây ạ : http://www.mediafire.com/download/9g...%E1%BA%A9n.rar
BÓ TAY BÓ CHÂN TOÀN TẬP với file của bạn. Thực hiện 1 thao tác là lại chạy chạy chạy đến tết tây mới xong.
Thế này thì máy có Core i100 cũng thành RÙA hết với file của bạn thôi.
Sao bạn không tìm cách nào thay các công thức mảng bằng 1 công thức khác. Trước tiên là vậy đi
 
Web KT

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

Back
Top Bottom