Hỏi: ClearFormats có làm tăng dung lượng file không? (1 người xem)

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

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

qtm1987

Thành viên thường trực
Tham gia
15/9/09
Bài viết
352
Được thích
262
Nghề nghiệp
Kế toán tổng hợp
Mình đang viết một đoạn code nhưng gặp phải một vấn đề là sau khi lưu lại file thì dung lượng file tăng lên. Thử kiểm tra lại code thì đang nghi ngờ là do dòng code này:
PHP:
.Range("A1:XFD1048576").ClearFormats

Cho mình hỏi có phải ClearFormats đã làm file tăng dung lượng. Đây là file mình test:
- File Test_1 (file gốc) dung lượng ban đầu là 13.2kb
- File Test_2 (file sau khi chạy code có ClearFormats) thì dung lượng thay đổi là 15.3kb

Mong anh chị diễn đàn giải thích giúp vì sao ClearFormats thì lại làm tăng dung lượng file.
 

File đính kèm

Mình đang viết một đoạn code nhưng gặp phải một vấn đề là sau khi lưu lại file thì dung lượng file tăng lên. Thử kiểm tra lại code thì đang nghi ngờ là do dòng code này:
PHP:
.Range("A1:XFD1048576").ClearFormats

Cho mình hỏi có phải ClearFormats đã làm file tăng dung lượng. Đây là file mình test:
- File Test_1 (file gốc) dung lượng ban đầu là 13.2kb
- File Test_2 (file sau khi chạy code có ClearFormats) thì dung lượng thay đổi là 15.3kb

Mong anh chị diễn đàn giải thích giúp vì sao ClearFormats thì lại làm tăng dung lượng file.
File bạn mở lên chưa chạy code save lại dung lượng thay đổi 15.1kb rồi nên có thể do excel lưu đâu đó cái tạm nào đó có thể làm tăng lên đôi chút nói chung ko đáng kể. ClearFormats đôi khi cũng có thể tăng dung lượng mình có lần chỉnh đâu trong properties của cửa sổ VBA cũng có thể làm tăng dung lượng chúng
 
Upvote 0
Cám ơn bạn nmhung49 đã giải thích giúp mình. Đây là file mình test thử dung lương tăng vài kb không đáng kể nhưng khi mình thêm vào chương trình code thì file xuất ra chênh lệch dung lượng quá lớn. Mình gửi file đính kèm (code nằm trong Module > Auto_TheKho > Sub ThuChi)

Mình test code như sau:
- Sheet Thu Chi, click vào nút Report sẽ xuất ra file báo cáo "Bao Cao Thu Chi ..." có dung lượng là 1.10mb
- Mở file "Bao Cao Thu Chi ..." xóa toàn bộ dòng từ dòng 74 đến dòng 1048576 (chọn dòng 74 rồi ấn Ctrl+shift+ nút mũi tên xuống rồi chuột phải chọn Delete) sau đó save lại thì dung lượng file chỉ còn 17.5kb. Dữ liệu trong vùng từ dòng 74 đến 1048576 hoàn toàn không có dữ liệu gì cả sao khi chạy code lại làm dung lượng file tăng lên đến 1.10mb.
- Sheet The Kho click vào nút Report sẽ xuất ra file báo cáo "Bao Co Thu Chi + The Kho..." lúc này file xuất ra lên tới hơn 27 mb. cũng là do những dòng trống không có dữ liệu gì làm tăng dung lượng file.
Rất mong bạn giúp mình giải quyết vấn đề này.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Cám ơn bạn nmhung49 đã giải thích giúp mình. Đây là file mình test thử dung lương tăng vài kb không đáng kể nhưng khi mình thêm vào chương trình code thì file xuất ra chênh lệch dung lượng quá lớn. Mình gửi file đính kèm (code nằm trong Module > Auto_TheKho > Sub ThuChi)

Mình test code như sau:
- Sheet Thu Chi, click vào nút Report sẽ xuất ra file báo cáo "Bao Cao Thu Chi ..." có dung lượng là 1.10mb
- Mở file "Bao Cao Thu Chi ..." xóa toàn bộ dòng từ dòng 74 đến dòng 1048576 (chọn dòng 74 rồi ấn Ctrl+shift+ nút mũi tên xuống rồi chuột phải chọn Delete) sau đó save lại thì dung lượng file chỉ còn 17.5kb. Dữ liệu trong vùng từ dòng 74 đến 1048576 hoàn toàn không có dữ liệu gì cả sao khi chạy code lại làm dung lượng file tăng lên đến 1.10mb.
- Sheet The Kho click vào nút Report sẽ xuất ra file báo cáo "Bao Co Thu Chi + The Kho..." lúc này file xuất ra lên tới hơn 27 mb. cũng là do những dòng trống không có dữ liệu gì làm tăng dung lượng file.
Rất mong bạn giúp mình giải quyết vấn đề này.

Trong file mình có chỉnh lại chỗ 2 sub TheKho và ThuChi kế dòng End with, khi đó dung lượng file xuất ra sẽ chon khoảng 110kb bạn test thử xem.
 
Upvote 0
Cám ơn bạn nhiều lắm, cách của bạn là thêm dòng code xóa đi những dòng trống đó thì dung lượng file sẽ giảm
PHP:
.Rows(r + 20 & ":1048576").Clear

Bạn có biết vì sao chạy code lại làm xuất hiện những dòng trống đó không, mình đã test kỹ rồi code không làm ra dòng nào trống như vậy nên chỉ nghi ngờ là dòng code:
PHP:
.Range("A10:F65536").ClearFormats

làm cho vùng dữ liệu được chọn từ dòng 10 đến dòng 65536 làm tăng dung lượng file. Có cách nào khác để viết code ClearFormats không bạn.
 
Upvote 0
Cám ơn bạn nhiều lắm, cách của bạn là thêm dòng code xóa đi những dòng trống đó thì dung lượng file sẽ giảm
PHP:
.Rows(r + 20 & ":1048576").Clear

Bạn có biết vì sao chạy code lại làm xuất hiện những dòng trống đó không, mình đã test kỹ rồi code không làm ra dòng nào trống như vậy nên chỉ nghi ngờ là dòng code:
PHP:
.Range("A10:F65536").ClearFormats

làm cho vùng dữ liệu được chọn từ dòng 10 đến dòng 65536 làm tăng dung lượng file. Có cách nào khác để viết code ClearFormats không bạn.

Dùng phương thức Clear chẳng ảnh hưởng gì đến bảng tính của bạn cả, vì nhìn code riêng mình không thấy chỗ nào gây ra vì nạp mảng và nhả mảng đều cùng kích thước
Bạn có thể thay code chỗ này thành
.Range("A8:M65536").Clear
thành
.Range("A8:N65536").Clear
Mà có thể code chạy bị chậm
 
Upvote 0

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

Back
Top Bottom